私のニーズ
Delphi/C++Builder XE2 を使用しています。
少なくとも次のDBMSにアクセスする必要があります。
- 火の鳥
- DB2/400
- SQLサーバー
- SAP HANA (新しいインメモリ DB、利用可能なインターフェース: JDBC、ODBC、ODBO、SQLDBC)
データベース対応のビジュアル コントロールでデータを表示および編集する必要があります。データはこれらの DBMS のいずれかに置くことができます。外部テキスト ファイルで接続プロパティと SQL ステートメントを構成します。
そこで、古い Paradox テーブルのように、そのような DBMS をサポートし、優れたパフォーマンスを持つデータベース アクセス用のコンポーネント セットを探しています。
私の推測
- ODBC を使用すると、ネイティブ ドライバーを使用するよりもパフォーマンスが低下します。本当なら、どうすればこの問題を克服できますか?
- ODBC を介しても、HANA インメモリ DB のパフォーマンスは優れています (今はテストできません)。
これまでに見つけたもの
BDE (ボーランド データベース エンジン) (
TDatabase
,TTable
...)非推奨。
DBX (エンバカデロdbExpress ) (
TSQLConnection
,TSQLTable
...)BDE、単方向データセットを置き換えます (カーソルは先に進むだけです。データをメモリにバッファリングしません。そのようなデータセットは DBGrid に表示できません。dbExpress を使用してユーザー インターフェイスを構築するには、さらに 2 つのコンポーネントを使用する必要があります:
TDataSetProvider
およびTClientDataSet
)ネイティブ ドライバー (HANA にはなし) または ODBC を使用します。
FireDAC (Embarcadero Fire Data Access Components) (
TADConnection
、TADTable
...)AnyDACの続きです。ネイティブ ドライバー (HANA にはなし)、ODBC、または dbExpress を使用します。
UniDAC (Devart Universal Data Access Components)
無料ではありません; ネイティブ ドライバー (HANA にはなし)、ODBC、または「DB クライアント」を使用します。
DA (Delphi の RemObjectsデータ アブストラクト)
無料ではありません。
ZDBC (Zeos データベース接続インターフェース) (
TZConnection
、TZQuery
...)オープンソース; Object Pascal への JDBC のポートとして開始されました。は、データベース対応のビジュアル コントロールとのバインディングを提供しません。
dbGo (エンバカデロ dbGo) (
TADOConnection
,TADOTable
...)ADO を実装します (したがって、ODBC を介した OLE DB を介して)。クエリで同じ名前のパラメーターを繰り返すなど、多くの癖があります。
Jv BDE (
TJvQuery
,TJvBDESQLScript
...)対応する標準ライブラリの強化。
Jv データ アクセス (
TJvADODataset
、TJvADOQuery
...)対応する標準ライブラリの強化。
(このリストを自由に拡張してください)
したがって、私の選択は次のとおりです。
- dbExpress または FireDAC: Embarcadero は将来どこに行きますか?
- dbGo: ADO は良い選択ですか? ODBCに依存しているようですが、パフォーマンスはどうですか?
- UniDAC や Data Abstract のような商用製品: 必要ですか? それは良いでしょうか?