異種間の問合わせの作成

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

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

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

TQuery は複数の種類のサーバーまたはテーブル(たとえば、Oracle テーブルのデータと Paradox テーブルのデータ)に対する異種間の問い合わせもできます。異種間の問い合わせを実行すると、BDE がローカル SQL を使って問い合わせを解析して処理します。BDE がローカル SQL を使用するため、サーバー独自に拡張された SQL 構文はサポートされません。

異種間の問い合わせを実行するには:

  1. BDE Administrator または SQL エクスプローラを使用して、問い合わせでアクセスするデータベースごとに個別の BDE エリアスを定義します。
  2. TQueryDatabaseName プロパティは空白のままにしてください。使用する 2 つのデータベースの名前は SQL 文で指定します。
  3. SQL プロパティで、実行する SQL 文を指定します。この文の各テーブル名の前には、そのテーブルがあるデータベースの BDE エリアスを、コロンで囲んで記述します。この参照全体を引用符で囲んでください。
  4. 問い合わせ用のパラメータを Params プロパティに設定します。
  5. 初めて問い合わせを実行する前に Prepare を呼び出して、その問い合わせを実行するための準備をします。
  6. 実行する問い合わせの種類に応じて Open または ExecSQL を呼び出します。

たとえば、CUSTOMER テーブルを持つ Oracle データベースに Oracle1 というエリアスを定義し、ORDERS テーブルを持つ Sybase データベースに Sybase1 というエリアスをそれぞれ定義するとします。この 2 つのテーブルに対する単純な問い合わせは次のようになります。

SELECT Customer.CustNo, Orders.OrderNo
FROM ":Oracle1:CUSTOMER"
  JOIN ":Sybase1:ORDERS"
    ON (Customer.CustNo = Orders.CustNo)
WHERE (Customer.CustNo = 1503)

異種間の問い合わせでデータベースを指定するのに、BDE エリアスを使用するかわりに TDatabase コンポーネントを使用することもできます。TDatabase を通常どおりにデータベースを指し示すように設定し、TDatabase.DatabaseName を任意のユニークな値に設定して、その値を SQL 文の中で BDE エリアス名のかわりに使用します。

関連項目