7

Oracle8iデータベースに接続するDelphi5アプリがあります。

ほとんどのロジックは、ストアドプロシージャとしてデータベースに配置されています。現在、Borland Database Engine(BDE)を使用して、OCIクライアント9.2を介してOracleに接続しています。

このアプリは、もともとDelphi 1を使用して'96年に作成され、'99年にDelphi5にアップグレードされました。

計画は、XEクライアントとOracle11gにアップグレードすることです。

BDEを他のものに単純に置き換え、労力を最小限に抑えるためのオプションは何ですか?

これまで私が見た:

  • AnyDAC(http://www.da-soft.com/anydac/)
  • devart ODAC(http://www.devart.com/odac/)
  • DOA(http://www.allroundautomations.com/)

DBExpressが必要なパフォーマンスを発揮するとは思わないため、DBExpressについては検討していません。

重要なことは次のとおりです。

  • アップグレードの容易さ、例えば、DBEコンポーネントを変換するためのウィザードまたは他のツール、
  • 良好なパフォーマンス。

彼らは移行ツールを持っており(それは部分的な仕事しかしませんが)、クライアントを必要とせずにデータベースに接続するための直接TCPオプションを持っているので、私はdevartに傾いています。

4

2 に答える 2

4

BDE と他のアーキテクチャの違いについて学ぶ必要があります。dbExpress への移行を計画しているかどうかにかかわらず、このホワイトペーパーを読んで学ぶ必要があります。

dbExpress のアーキテクチャは意図的なアーキテクチャであり、BDE の最下位レベルだけでなく、上位レベル (TTable/TQuery コンポーネント) およびアーキテクチャの重大な欠陥に対処するように設計されています。これらの変更の理由と、それらが対処する BDE の制限を理解することは、アプリを BDE から移行するための重要な要素です。

パフォーマンスに関するあなたの主張については、私は人々が実際のデータを使用し、手を振ったり、実験的な裏付けなしにオブジェクトに付与された「高速」などの形容詞に基づいて意見を形成したりするのを見るのが好きです。

私は個人的に DOA を使用したことはありませんが、dbExpress を使用しない場合、Oracle のみの環境で次に評価することになるでしょう。それでも、自分の環境で両方をテストしない限り、dbExpress の方が遅いとは思いません。

更新:最初に Delphi OCI について言及しましたが、それは時代遅れであり、あまりアクティブではないことが判明しました。sourceforge のDelphiOCIプロジェクトは、Unicode Delphi ではなく、Delphi 7 以前で動作し、古い (Oracle 8i 以前の) Oracle バージョンでのみ動作します...これが私の環境で動作することができれば、試してみました。ああ、それは GPL です。わかった。それほど素晴らしいことではありません。

于 2011-05-24T01:18:19.343 に答える
1

ODAC と DOA の両方 (最近の DOA 開発はかなり古いですが) は、Oracle 機能 dbExpress へのアクセスを提供し、他の汎用 DB アクセス ライブラリは通常アクセスを許可しません。アプリケーションが Oracle のみをサポートし、他の DB をサポートする必要がない場合は、Oracle の機能を完全に活用する方がはるかに優れています。移植の容易さは、BDE コンポーネント コードの書き方によって異なります。ODAC には BDE の移植を簡素化するためのツールがあります (ただし、私はそれらを使用したことはありません) が、AFAIK DOA にはありません。DOA TOracleQuery は TDataset の子孫ではないため、直接 TQuery を置き換えるものではありませんが、オーバーヘッドが少なく、パフォーマンスが優れていますが、TOracleDaset はデータセットに似た唯一のコンポーネントです。

于 2011-05-24T10:46:05.243 に答える