« ■Borland Developer Studio 2006 | トップページ | ☆DBExpressでトラブル<解決> »

★DBExpressでトラブル

[Delphi2006 WIN32]

Delphi7で作ったプログラムをDelphi2006でコンパイルすると動作がおかしいので、シンプルなプログラムを作成して試してみました。
問題点は、SQLDataSetで取り出された内容をClientDataSetに反映できないということです。

[環境]
Windows XP Pro SP2、Delphi2006(WIN32)
Firebird 1.5.2.4731

1.フォームに次のコンポーネントを配置して関連付けします。
  SQLDataSet1+DataProvider1+ClientDataSet1+DataSource1+DBGrid1
  Edit1, Button1

2.SQLConnection1を設定します。

3.SQLDataSet1.Commatextを設定します。
  SQLDataSet1.Commatext := 'SELECT * FROM SYAIN WHERE ID = :ID';

4.Button1.OnClickを設定します。

  procedure TForm1.Button1Click(Sender: TObject);
  var
   ID: Integer;
  begin
   ID := StrToInt(Edit1.Text);
   ClientDataSet1.Close;
   SQLDataSet1.Close;
   SQLDataSet1.ParamByName('ID').AsInteger := ID;
   SQLDataSet1.Open;
   ClientDataSet1.Open;
  end;

このプログラムで、IDを変えてもDBGridの表示は一番最初に入力したIDのデータのままとなっています。
Delphi7から変わったことと言えば、DBExpressのInterBase用のDLLがdbexpint.dllからdbxint30.dllに変更されたことだけです。
Firebirdなのが原因なのかよくわかりませんが、解決方法も見つけられず、困っています。


|

« ■Borland Developer Studio 2006 | トップページ | ☆DBExpressでトラブル<解決> »