Delphi:BDEからDBExpressチュートリアルへの移行

DBF/MDXデータファイルを含むBDEを使用してDelphiアプリケーションをローカルデータファイルを使用してDBExpressに移行しようとしています。

TTableコンポーネントをTClientDatasetに置き換えるだけで、インデックスプロパティを含むエラーが発生しました。

私はそれを探検し、私が思いついたのは、ボブ博士の索引についての言及がなく、ソート方法の使い方を示していない記事です。他のすべての記事は、DBExpressの一般的な説明で、私に関連する詳細はありませんでした。

どの手順のチュートリアル/例がありますか?

1
あなたの特定の質問はほとんど意味がありません。あなたはTTableをClientDataSetに置き換えていますか?あなたが達成しようとしていることを詳述していますか? TClientDataSetはTTableを置き換えるすべてのコンポーネントですか? TClientDataSetがあなたが望むすべてをやることを望みましたか?誰もあなたがここで欲しいものを推測することはできません。おそらくコードサンプルですか? dBaseファイルでBDEを使用していましたか?どうぞよろしくお願いします。
追加された 著者 Warren P,
私は数年前にCode Rage IIIのBDE移行に関するビデオを投稿しました。 learndelphi.tv/ …
追加された 著者 Alister,
BDEアプリケーションをdbExpress/Firebirdに変換するための一連のブログエントリを書きました。このエントリを見ることができます: nbnewman.blogspot.com/2009 /09/using-dbexpress-conclusions.ht‌ ml
追加された 著者 No'am Newman,

3 答え

残念ながら、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など)、または比較的安価なものから、いくつかの他のエンジンを入手できます。

1
追加された
これらの選択肢の間に特徴の比較はありますか?
追加された 著者 ChuckO,
ここから始めることができます: en.wikipedia.org/wiki/… あなたのニーズに最も適したものを探してください。
追加された 著者 user160694,

IMHO、TTableおよびTClientDataSetは、非常に異なるデータアクセスメソッドです。 2つの移行パスを提案します:

  1. DBF/MDXに関するsaydのように、Advantage DatabaseとTAdsTableに注意してください。 TClientDataSetやdbExpressよりも、TTableとの互換性が向上します。
  2. Anydac とその TADTable を入力します。 TADTableは、他のAnydac機能に加えて、互換性があり、より高速なTTableの代替品として見えます。
1
追加された
このアプリは非営利団体によって使用されています。私はむしろ無料のデータベースを使用したいと思います。
追加された 著者 ChuckO,
Firebird、PostgreSQL、SQLite、SQL Server Expressなど、無料のデータベースでAnydac(商用版)を使用することができます。
追加された 著者 GeorgeJ,

人々がそれをするのを見つけることができない理由があります。それは単なる悪い考えではなく、おそらくほぼ不可能です。

ClientDataSetを "唯一必要とする唯一のデータベース"とはみなされないように放棄し、IBObjects [commercial!]とFirebird [free]、またはdbExpressのいずれかを使用することを検討することをお勧めしたいと思います+サポートされているSQL Db、またはDelphiに付属のInterbase Express(IBX)コンポーネント。

BDEや、dBase、Access、Paradoxの各テーブルで使用されていたフィーチャセットを置き換えるには、完全なリレーショナルSQL dbms(非常に小さくても軽いものでも)が必要です。

その場合、通常のチュートリアルがあなたの状況に完全に当てはまります。

0
追加された