[XE2]DBGridのDataSource設定時のエラー

解決


にんちゃん  2012-09-20 03:57:06  No: 42945

お世話になります。
[D5]以来5年ぶりくらいにDelphiに触っているのですが、DBGridにTSQLQueryのデータを表示させる為に、FormにTDataSourceを貼り付け、DBGridのDataSourceを設定したのですが、「指定の操作は単方向データセットでは許されません」と表示され、設定する事が出来ません。
以前は5分で出来た事なので、分かってしまえばあまりに簡単な事なのかもしれませんが、ネットで検索しても具体的な設定方法を見つける事が出来ませんでした。
具体的にどのコンポーネントを使用して、どのプロパティを設定するという記述のあるサイト、もしくはやり方を教えて頂けないでしょうか?
よろしくお願いします。


igy  2012-09-20 04:52:24  No: 42946

dbExpressでしたら、

TSQLConnection − TSQLDataSet − TDataSetProvider − TClientDataSet − TDataSource − DBGrid

でいかがでしょう。


にんちゃん  2012-09-20 06:30:27  No: 42947

igyさま
早々のご連絡ありがとうございました。

TSQLQuery ←  SQLConnectionにTSQLConnectionを設定?
TSQLConnection  ←  DB接続の設定
TSQLDataSet ←  SQLConnectionにTSQLConnectionを設定
TDataSetProvider ←  DataSetにTClientDataSetを設定?
TClientDataSet ←  ???
TDataSource ←  DataSetにTClientDataSetを設定
DBGrid ←  DataSourceにTDataSourceを設定

という所まで設定してみたのですが、TClientDataSetはどのプロパティの何をセットするのかが分かりませんでした。
ここまでの設定で合っているかどうかを教えて頂けたら助かります。
※ ちなみにここまでで「指定の操作は単方向データセットでは許されません」は表示されていません。

よろしくお願いします。


igy  2012-09-20 06:47:00  No: 42948

# 実際、正しい方法が、自信がないのですが・・・・

>TDataSetProvider ←  DataSetにTClientDataSetを設定?

私の場合、さらに、

with DataSetProvider1 do
    Options := Options + [poAllowCommandText];

を指定してます。

>TClientDataSet ←  ???

with ClientDataSet1 do
    ProviderName := DataSetProvider1.Name;

を指定して、SELECT文なのは、CommandTextプロパティに記入してます。


igy  2012-09-20 06:50:57  No: 42949

×:# 実際、正しい方法が、自信がないのですが・・・・
○:# 実際、正しい方法か、自信がないのですが・・・・

あと、

>ここまでの設定で合っているかどうかを教えて頂けたら助かります。

記入されている内容で合っていると思います。


igy  2012-09-20 07:01:54  No: 42950

XE2でしたら、ヘルプに
「チュートリアル:アプリケーションで dbExpress を使用してデータベースを表示および更新する 」
があるので、そちらも参照してみてください。


にんちゃん  2012-09-20 18:40:53  No: 42951

igyさま

丁寧な解説ありがとうございました。
チュートリアルも見たのですが見つけられなかったので、もう一度確認してみます。
結果はまた報告させて頂きます。


にんちゃん  2012-09-20 22:31:04  No: 42952

igyさま

チュートリアルを見て設定ができました。
TSQLQueryにSQL文を書いて実行しようとしていましたが、TSQLDataSetに書かなければいけないようでした。
実際にはパラメータの設定等が残っている為、まだデータの表示までしておりませんが、DBGridに項目名が表示されているので、後はSQL文の見直し等をして自力でやります。

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加