0

Delphi 2006 (アップデート 2) に移植する必要がある古いアプリケーション (Delphi 6 で記述) があります。アプリケーションは DBExpress を使用して Interbase 6.x データベースに接続していましたが、新しいバージョンは Firebird 2.x スーパーサーバーに接続する必要があります。

移植はうまくいきました。実際の問題はありません。しかし、移植したアプリから新しい Firebird サーバーに接続しようとすると、次のエラーが表示されます。

データベース エラー データベース サーバー エラー: フェッチ操作のための現在のレコードがありません

Delphi 6 でコンパイルされた同じアプリケーションを実行し、同じ Firebird サーバーと通信すると、正常に動作します。Delphi 2006 でアプリをコンパイルするために必要な変更は、データベース コードに関連するものではなく、すべてローカル ライブラリのものでした。アプリケーションは、TSQLDataset en datasetproviders および clientdatasets を使用します。

誰もがどのように、または理由を知っていますか? この動作を引き起こす可能性のある DBExpress への変更はありますか? ありがとう。

4

3 に答える 3

0

Delphi 2010 まで、組み込みの DBExpress ドライバーは FireBird を公式にサポートしていませんでした。
実際には、多くの組み合わせがまったく機能しませんでした。

また:

  • FireBird を正式にサポートする DBExpress ドライバーを探します ( google を検索)。
  • または、別のデータベース中間層に移動します (James が提案する FIBPlus は本当に優れています)。

--jeroen

于 2010-02-12T10:57:58.683 に答える
0

Delphi 2006 が Firebird をネイティブにサポートしているとは思えません。FIBPlusをインストールする必要があると思います

Delphi 2006 でサポートされているもののリストを次に示します。

Old driver      New driver      Database and Version

dbexpinf.dll    dbxinf30.dll    Interbase 7.5
dbexpora.dll    dbxora30.dll    Oracle 10g
dbexpdb2.dll    dbxdb230.dll    db2 UDB 8.x
dbexpmss.dll    dbxmss30.dll    MSSQL 2000
dbexpmys.dll    dbxmys30.dll    MySQL 4.0.24
dbexpasa.dll    dbxasa30.dll    Adaptive Sybase Anywhere 9
dbexpase.dll    dbxase30.dll    Sybase 12.5
dbexpinf.dll    dbxinf30.dll    Informix 9.x

ここから抜粋

于 2009-08-28T10:28:34.063 に答える
0

まず、新しい 1 フォーム アプリ (SQLConnection、SQLQuery などを配置) から同じ手順を再試行し、必要な SQL を入力して接続を試みます。

D2006 DBexpress を使用して Firebird 2.x に正常にアクセスしたので、バージョン間で変更された接続パラメーターがあると思います。しかし、アプリケーションは移植されたのではなく、新しいプロジェクトでした。

于 2010-02-12T13:29:57.713 に答える