안녕하세요..
밑의 코드속에 포함된 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;
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;
>