Q&A

  • dataset이 table일때 안되는 이유..-.-;
dbgrid에 combobox의 text값 조건으로 뿌려줄려고 하는데요..

procedure TForm1.Button1Click(Sender: TObject);

begin
    datamodule1.query1.Close;
    datamodule1.query1.SQL.clear;
    datamodule1.query1.sql.add('select * from test');
         if combobox6.text <> '' then
    datamodule1.query1.sql.add('where 과목=' +QuotedStr(combobox6.text));
        //   ShowMessage(datamodule1.query1.SQL.Text);
    datamodule1.query1.open;
end;

datasource1의 dataset은 table1입니다. query1의 datasource는 datasource1으로 했구요.. 아무 반응이 없네요..에러메세지도 없고..-.-;

아래처럼 하면 원하는 값을 얻을 수 있는데요..

procedure TForm1.Button1Click(Sender: TObject);

begin
    datamodule1.query2.Close;
    datamodule1.query2.SQL.clear;
    datamodule1.query2.sql.add('select * from test');
         if combobox6.text <> '' then
    datamodule1.query2.sql.add('where 과목=' +QuotedStr(combobox6.text));
        //   ShowMessage(datamodule1.query2.SQL.Text);
    datamodule1.query2.open;
end;

datasource2의 dataset을 query2로 두고 query2의 datasource는 아무것도 안줬습니다.
앞의 경우로는 안되는 건가요? 답변 좀 부탁드릴께요...


1  COMMENTS
  • Profile
    너구리 2004.05.11 02:13
    음.. 에러가 안나는군요..해본적은 없지만..

    Database <- Table.Database <- DataDource.Dataset
    <- DBGrid.Datasource

    이런식으로 연결 되야 겠지요..

    데이타 소스는 연결 역활을 합니다.

    전에 한번 내부를 뒤져 본적이 있는데 지금 잘 기억이 안나네요..

    지금 기억으로는 DBControl에서 어떤 작업을 하면 Table에 반영시키는 기능
    을 하던데요..(컥 전혀 기억이 안나는군요.)

    데이타셋의 데이타소스를 다른 데이타셋과 연결할때 썼는데요..

    헬프를 보시면 어떤식으로 쓸수 있다고 나오네요..

    저는 전에 마스터 디테일 관계(Select Query)의 구조를 만들때 썼는데요.

    update, insert도 되는군요..