Q&A

  • [SQL]변수에 관하여
SQL에서 FROM 문장 뒤에 오는 테이블명을 변수로 사용할 순 없는지 궁금해서요..



알고 계신분 답변 부탁드립니다...



query.sql.add('select *');

query.sql.add(' from :table_name')



뭐 이런식으로 하고 싶거든요...근데 에러가 나네요..



3  COMMENTS
  • Profile
    돌돌이 2000.12.23 00:23
    김대빵 wrote:

    > SQL에서 FROM 문장 뒤에 오는 테이블명을 변수로 사용할 순 없는지 궁금해서요..

    >

    > 알고 계신분 답변 부탁드립니다...

    >

    > query.sql.add('select *');

    > query.sql.add(' from :table_name')

    >

    > 뭐 이런식으로 하고 싶거든요...근데 에러가 나네요..

    >



    변수를 하나 설정하고..

    s:='테이블명';

    (ex)s:='table1.db';

    쿼리문에서..

    with Query1 do

    begin

    sql.clear;

    sql.add('Select * from "'+s+'"');

    .

    .

    .

    이러면 됩니다~~

  • Profile
    박인우 2000.12.22 02:27
    김대빵 wrote:

    > SQL에서 FROM 문장 뒤에 오는 테이블명을 변수로 사용할 순 없는지 궁금해서요..

    >

    > 알고 계신분 답변 부탁드립니다...

    >

    > query.sql.add('select *');

    > query.sql.add(' from :table_name')

    >

    > 뭐 이런식으로 하고 싶거든요...근데 에러가 나네요..

    >



    아마도 파라미터인 :table_name이 정해지지 않아서 생기는 문제일듯 합니다.



    query.ParamByName('table_name').AsString := Edit1.Text;



    이와같이 파라미터의 값도 정해줘야 될듯합니다. 의문에 대한 답이 되었으면합니다.



    참고. 그냥 query.sql.add(' from ' + Edit1.Text) ;

    요렇게 해도 될듯한데요 ..^^

  • Profile
    정우성 2000.12.21 02:44
    김대빵 wrote:

    > SQL에서 FROM 문장 뒤에 오는 테이블명을 변수로 사용할 순 없는지 궁금해서요..

    >

    > 알고 계신분 답변 부탁드립니다...

    >

    > query.sql.add('select *');

    > query.sql.add(' from :table_name')

    >

    > 뭐 이런식으로 하고 싶거든요...근데 에러가 나네요..



    테이블명을 그런식으로 변수로 사용할 수 없습니다..



    이런 식으로 해보시는 것이 어떨런지..



    Var

    T_Sql : String;//테이블명 임시변수 또는 Sql문



    begin

    T_Sql := 'T_ITEM';//여기서 테이블명을 넘겨준다.(Where 절도 포함할수 있겠죠^^)

    With query do

    begin

    Close;

    Sql.Clear;

    Sql.Add(' Select * From ');

    Sql.Add(T_Sql);

    Open;

    end;

    end;



    뭐 이런식으로 하시면 될것 같습니다.



    참고로 위의 방식으로 Sql문을 동적으로 생성하시는 것은여..

    대용랑인 경우에는 별로 좋은 방법이 아닙니다. 특히 '*'는 쥐약입니다.

    다이네믹한 Sql문은 좋은 습관이 아닙니다.^^



    그럼 즐코딩 하시구여. 참고하세요..