Q&A

  • TQuery 사용시 질문..
안녕하세요..

밑의 코드속에 포함된 sql과 TQuery의 프로프티의 SQL창에 작성하는 sql과의 차이점이 무엇인가요? 그리고 TDbGrid를 편집(TField)하기 위해선 프로프티의 SQL을 사용해야하니요..? 밑의 소스를 이용해서 결과가 출력되는 TDbGrid를, 편집(필드이름 변경... 등등)을 할려고 하니 자꾸 "Query1: NO SQL statement available"같은 Error가 발생합니다..

두가지중 한가지만 사용하면 될것 같은데.. 이왕이면 아래의 방법을 이용하여

프로그래밍(필드편집 등등)을 하고 싶은데 고수님의 조언을 바랍니다...



procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);

var ls_trvw_nm : String;

begin

ls_trvw_nm := Trim(TreeView1.Selected.Text);

with Query1 do begin

Close;

SQL.Clear;

SQL.Add('SELECT *');

SQL.Add('FROM Customers');

SQL.Add('WHERE Seg = :v_nm');

ParamByName('v_nm').AsString := ls_trvw_nm;

Open;

end;

end;



2  COMMENTS
  • Profile
    Ziker 2001.07.05 01:41
    안녕하세요 지커(김성규)입니다.



    TQuery 컴포넌트에 sql 를 작성할때 프라퍼티 창에서 해 주시든...

    코드상으로 아래 작성하신것처럼 하시든 관계 없습니다.



    수정이 가해지는 쿼리는 open메소드를 쓰면 안되구요... ExecSQL 를 쓰셔야 합니다.

    (update, insert등.. )



    글구 한가지더.. 기본적으로 TQuery 컴포넌트는 수정이 안되게끔 설정 되어 있습니다.

    수정이나 업데이트등의 작업을 할 때에는 TQuery컴포넌트의 RequestLive 속성을

    True로 바꿔 주십시오..



    그럼 즐코~





    초보 wrote:

    > 안녕하세요..

    > 밑의 코드속에 포함된 sql과 TQuery의 프로프티의 SQL창에 작성하는 sql과의 차이점이 무엇인가요? 그리고 TDbGrid를 편집(TField)하기 위해선 프로프티의 SQL을 사용해야하니요..? 밑의 소스를 이용해서 결과가 출력되는 TDbGrid를, 편집(필드이름 변경... 등등)을 할려고 하니 자꾸 "Query1: NO SQL statement available"같은 Error가 발생합니다..

    > 두가지중 한가지만 사용하면 될것 같은데.. 이왕이면 아래의 방법을 이용하여

    > 프로그래밍(필드편집 등등)을 하고 싶은데 고수님의 조언을 바랍니다...

    >

    > procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);

    > var ls_trvw_nm : String;

    > begin

    > ls_trvw_nm := Trim(TreeView1.Selected.Text);

    > with Query1 do begin

    > Close;

    > SQL.Clear;

    > SQL.Add('SELECT *');

    > SQL.Add('FROM Customers');

    > SQL.Add('WHERE Seg = :v_nm');

    > ParamByName('v_nm').AsString := ls_trvw_nm;

    > Open;

    > end;

    > end;

    >

  • Profile
    초보 2001.07.05 03:53
    님께서 아래글중에 잘못 해석하신 부분이 있어 다시 수정합니다.

    이래글중 편집을 님께선 Query해온 결과물을 다시 수정하는것을

    말씀하시는것 같은데, 제가 알고 싶은것은 DbGrid의 결과물인 데이타 부분이아니라

    필등명이나 컬럼의 크기, 컬럼의 위치..등등 출력될 결과물이 들어갈 디자인 부분입니다.. Query의 프로프티의 SQL을 쓰면 편집(디자인부분)이 가능한데..

    이상하게도 코드를 쓰면 에러가 발생합니다.. 이부분에 대해 아시는분은

    상세한 리플좀 달아주세요....

    그리고 Ziker님 답변주셔서 대단히 감사합니다.. 한번더 리플 바랍니다...



    Ziker wrote:

    > 안녕하세요 지커(김성규)입니다.

    >

    > TQuery 컴포넌트에 sql 를 작성할때 프라퍼티 창에서 해 주시든...

    > 코드상으로 아래 작성하신것처럼 하시든 관계 없습니다.

    >

    > 수정이 가해지는 쿼리는 open메소드를 쓰면 안되구요... ExecSQL 를 쓰셔야 합니다.

    > (update, insert등.. )

    >

    > 글구 한가지더.. 기본적으로 TQuery 컴포넌트는 수정이 안되게끔 설정 되어 있습니다.

    > 수정이나 업데이트등의 작업을 할 때에는 TQuery컴포넌트의 RequestLive 속성을

    > True로 바꿔 주십시오..

    >

    > 그럼 즐코~

    >

    >

    > 초보 wrote:

    > > 안녕하세요..

    > > 밑의 코드속에 포함된 sql과 TQuery의 프로프티의 SQL창에 작성하는 sql과의 차이점이 무엇인가요? 그리고 TDbGrid를 편집(TField)하기 위해선 프로프티의 SQL을 사용해야하니요..? 밑의 소스를 이용해서 결과가 출력되는 TDbGrid를, 편집(필드이름 변경... 등등)을 할려고 하니 자꾸 "Query1: NO SQL statement available"같은 Error가 발생합니다..

    > > 두가지중 한가지만 사용하면 될것 같은데.. 이왕이면 아래의 방법을 이용하여

    > > 프로그래밍(필드편집 등등)을 하고 싶은데 고수님의 조언을 바랍니다...

    > >

    > > procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);

    > > var ls_trvw_nm : String;

    > > begin

    > > ls_trvw_nm := Trim(TreeView1.Selected.Text);

    > > with Query1 do begin

    > > Close;

    > > SQL.Clear;

    > > SQL.Add('SELECT *');

    > > SQL.Add('FROM Customers');

    > > SQL.Add('WHERE Seg = :v_nm');

    > > ParamByName('v_nm').AsString := ls_trvw_nm;

    > > Open;

    > > end;

    > > end;

    > >