質問: Delphi:BDEからDBExpressチュートリアルへの移行 DBF/MDXデータファイルを含むBDEを使用してDelphiアプリケーションをローカルデータファイルを使用してDBExpressに移行しようとしています。 TTableコンポーネントをTClientDatasetに置き換えるだけで、インデックスプロパティを含むエラーが発生しました。 私はそれを探検し、私が思いついたのは、ボブ博士の索引についての言及がなく、ソート方法の使い方を示していない記事です。他のすべての記事は、DBExpressの一般的な説明で、私に関連する詳細はありませんでした。 どの手順のチュートリアル/例がありますか?
回答: 残念ながら、TClientDatasetローカルファイルは、BDEをローカルデータベースエンジンとして置き換えるものではありません。基本的には、ディスク上にデータを保存する機能を備えたメモリ内データセットです。しかし、彼らはあなたがBDEで見つけることができる多くの機能が欠けています。ニーズが最小限であれば、クライアントデータセットTIndexDefsプロパティ内でインデックスを定義できますが、必要なものではありません。 さらに、TClientDatasetはdbExpress関連のコンポーネントではありません。実際には、MIDAS(後でDatasnapという名前が付けられました)は、マルチティアアプリケーションのリモートデータセットのクライアント(したがって名前)として導入されました(ディスクストレージの機能によって切断された操作が可能になります)。 dbExpressは、ODBC/BDE/OLEDBのように、「ドライバ」を介して異なるデータベースサーバで動作するデータアクセス層です。既存のTClientDatasetのキャッシング/カーソル機能を再利用して双方向カーソルとキャッシュを提供することで、dbExpressで単方向データセットのみを使用することになりました。 TClientDatasetのみを使用している場合は、dbExpressをまったく使用していないため、TClientDatasetは必要なインターフェイス(BDEのものも含む)を実装しているすべてのデータセットで動作します。 あなたは、SQLite、Firebird(ローカルアクセスのみが必要な場合は「埋め込み」バージョンがあります)、小型で無料のエンジン(アプリケーションがGPLの場合のみMySQLは無料です)、またはそこにあるPostgres市販されているもの(SQL Server ExpressやOracle Expressなど)、または比較的安価なものから、いくつかの他のエンジンを入手できます。