編集可能な結果セットの取得

提供: RAD Studio
移動先: 案内検索

BDE 対応データセットの利用:インデックス への移動

メモ: ボーランド データベース エンジン(BDE)の使用は推奨されません。今後 BDE は機能拡張されません。たとえば、BDE では Unicode がサポートされていません。BDE を使用して新たに開発しないことをお勧めします。既存のデータベース アプリケーションを BDE から dbExpress に移行することを検討してください。

データベース対応コントロールでユーザーが編集可能な結果セットを要求するには、問い合わせコンポーネントの RequestLive プロパティを True に設定します。RequestLiveTrue に設定することでライブ結果セットが保証されるわけではありません。しかし、BDE はできるだけ要求に応えようとします。問い合わせがローカル SQL パーサーを使用しているかサーバーの SQL パーサーを使用しているかにより、ライブ結果セット要求はある程度制限されます。

  • 異種間の問い合わせのように、テーブル名の前にデータベースの BDE エリアスが記述されている問い合わせ、および Paradox や dBASE に対して実行される問い合わせは、BDE がローカル SQL を使って解析します。ローカル SQL パーサーを使用する問い合わせの場合、BDE は単一テーブルとマルチテーブルの両方の問い合わせに対して更新可能なライブ結果セットを拡張してサポートします。ローカル SQL を使用する場合は、問い合わせに以下のものが含まれていなければ、単一のテーブルまたはビューに対する問い合わせでライブ結果セットが返されます。
  • SELECT 文の DISTINCT 節
  • 結合(内部、外部、または UNION)
  • 集計関数(GROUP BY 節または HAVING 節を伴う場合も伴わない場合も)
  • 更新できない基本テーブルまたはビュー
  • 副問い合わせ
  • インデックスに基づいていない ORDER BY 節

リモートデータベースサーバーに対する問い合わせの場合は、サーバーがその問い合わせを解析します。RequestLive プロパティが true に設定されている場合には、BDE がデータの変更をテーブルに反映するためにローカル SQL 標準を使用する必要があるので、SQL 文は、サーバーによる制限に加えて、ローカル SQL 標準にもしたがっていなければなりません。問い合わせに以下のものが含まれていなければ、単一のテーブルまたはビューに対する問い合わせでライブ結果セットが返されます。

  • SELECT 文の DISTINCT 節
  • 集計関数(GROUP BY 節または HAVING 節を伴う場合も伴わない場合も)
  • 複数の基本テーブルまたは更新可能なビューへの参照
  • FROM 節またはほかのテーブルの中のテーブルを参照している副問い合わせ

アプリケーションがライブ結果セットを要求し、受け取る場合、その問い合わせコンポーネントの CanModify プロパティは True に設定されます。問い合わせがライブ結果セットを返した場合でも、リンクされた項目がその中に含まれているかまたは更新する前にインデックスを切り替えると、問い合わせの結果セットを直接更新できなくなることがあります。そのような場合、結果セットを読み出し専用結果セットとして扱い、それに応じた方法で更新する必要があります

アプリケーションがライブ結果セットを要求しても、SELECT 文の構文でそれが許されない場合、BDE は以下のどちらかを返します。

  • 読み出し専用結果セット(Paradox または dBASE に対する問い合わせの場合)
  • エラーコード(リモートサーバーに対する SQL 問い合わせの場合)

関連項目