DBgridの指定クエリをプログラムコードで変更

解決


どうすれば  2010-01-23 18:28:12  No: 37196  IP: 192.*.*.*

質問があります。DBGridのオブジェクトインスペクタでquery1を選択し、クエリを使っていろいろと処理しているのですが、プログラムコードでDBGridの指定クエリを変更したい場合(query1からquery2へ)の書き方をご存知でしょうか?

DBGrid.dataset := query2; とやりましたが、ダメでした。

編集 削除
igy  2010-01-23 19:54:38  No: 37197  IP: 192.*.*.*

>DBGrid.dataset := query2; とやりましたが、ダメでした。

ダメ というのは、具体的にはどのようになるのですか?
(DBGridの表示が何も変わらないということですか?)

編集 削除
Kenny  2010-01-23 19:55:02  No: 37198  IP: 192.*.*.*

TQueryを切り替えるのなら、DBGridにリンクさせているTDataSourceコンポーネントの
DataSetプロパティで設定するのが、そういうことではなくって?

何がうまくいかないのか、具体的に書かれた方がアドバイスを受けやすいと思いますよ。

編集 削除
igy  2010-01-23 20:05:50  No: 37199  IP: 192.*.*.*

Kenny さんが書かれているとおり、TDataSourceコンポーネントを使い、

   DBGrid1.DataSource := DataSource1;
   DataSource1.DataSet := Query1;

として、

   DataSource1.DataSet := Query2;

で変更した場合、どうなりますか?

編集 削除
Kenny  2010-01-23 20:45:44  No: 37200  IP: 192.*.*.*

オブジェクトインスペクタで見ると、DBGridのDataSourceプロパティの中にDataSetプロパティが
下層階層で表示されるんですよね。(私のD7場合。)
親切な表示なんですけど、DataSetプロパティをうっかりDBGridのプロパティと勘違いされて
いるんじゃないかと推察しているんですけど。
igyさんのコードでちゃんと切り替わりますよ>どうすればさん。

編集 削除
どうすれば  2010-01-23 22:51:39  No: 37201  IP: 192.*.*.*

切り替わりました。ありがとうございました。

編集 削除
どうすれば  2010-01-23 22:52:29  No: 37202  IP: 192.*.*.*

解決チェックを忘れてました。

編集 削除