BDE でのトランザクションの利用

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

BDE でのトランザクションの利用:インデックス への移動

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

デフォルトでは、BDE は暗黙のトランザクション制御をアプリケーションに提供します。 アプリケーションが暗黙のトランザクション制御下にある場合は、基になるデータベースに書き込まれるデータセット内のレコードごとに、別々のトランザクションが使用されます。 暗黙のトランザクションは、レコード更新時の競合を最小にすると同時に、データベースのビューの整合性を保証します。 一方、データベースに書き込まれるデータ行は、それぞれ固有のトランザクション内で発生するため、過剰なネットワーク トラフィックが生じてアプリケーションのパフォーマンスが低下する可能性があります。 また、暗黙のトランザクション制御は、複数のレコードにまたがる論理操作を保護しません。

明示的にトランザクションを制御すれば、トランザクションの開始、コミット、およびロールバックのための最も効果的なタイミングを選択できます。 マルチユーザー環境でアプリケーションを開発する場合(特に、リモートの SQL サーバーに対してアプリケーションを実行する場合)は、トランザクションを明示的に制御する必要があります。

BDE ベースのデータベース アプリケーションで、明示的にトランザクションを制御するには、相互に排他的な次の 2 つの方法があります。

  • データベース コンポーネントを使用してトランザクションを制御する。 データベース コンポーネントのメソッドとプロパティを使用する一番のメリットは、特定のデータベースやサーバーに依存しないクリーンで移植性の高いアプリケーションを提供できる点です。 この種のトランザクション制御は、すべてのデータベース接続コンポーネントでサポートされています。これについては、トランザクションの管理で説明します。
  • クエリ コンポーネントでパススルー SQL を使用して SQL 文をリモートの SQL サーバーや ODBC サーバーに直接渡す。 パススルー SQL の一番のメリットは、特定のデータベース サーバーの高度なトランザクション管理機能(スキーマ キャッシングなど)を利用できる点です。 サーバーのトランザクション管理モデルの利点については、お使いのデータベース サーバーのドキュメントを参照してください。

ローカル データベースを扱う場合は、明示的なトランザクションを作成するために、データベース コンポーネントしか使用できません(ローカル データベースはパススルー SQL をサポートしていません)。 ただし、ローカル トランザクションの使用には制限があります。 ローカル トランザクション使用の詳細は、「ローカル トランザクションの使い方」を参照してください。

メモ: キャッシュを使用した更新によって、必要なトランザクション数を最小にできます。 キャッシュされた更新情報の詳細は、「クライアント データセットを更新情報のキャッシュに使用する」を参照してください。

関連項目