0

我有一个旧应用程序(用 Delphi 6 编写)必须移植到 Delphi 2006(更新 2)。该应用程序曾经使用 DBExpress 连接到 Interbase 6.x 数据库,但新版本需要连接到 Firebird 2.x 超级服务器。

移植顺利,没有真正的问题。但是现在,当我尝试从移植的应用程序连接到新的 Firebird 服务器时,我收到以下错误:

数据库错误 数据库服务器错误:没有当前记录用于获取操作

运行使用 Delphi 6 编译的相同应用程序,与相同的 Firebird 服务器通信运行良好。在 Delphi 2006 中编译应用程序所需的更改与数据库代码无关——所有本地库的东西。该应用程序使用 TSQLDataset en datasetproviders 和 clientdatasets。

有人知道如何或为什么吗?对可能导致此行为的 DBExpress 的任何更改?谢谢。

4

3 回答 3

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

在 Delphi 2010 之前,内置的 DBExpress 驱动程序从未正式支持 FireBird。
在实践中,很多组合根本不起作用。

任何一个:

  • 去找一个正式支持 FireBird 的 DBExpress 驱动程序(搜索谷歌),
  • 或移动到另一个数据库中间层(James 建议的 FIBPlus 非常好)。

——杰伦

于 2010-02-12T10:57:58.683 回答
0

首先,从一个新的 1-form 应用程序(放置 SQLConnection、SQLQuery 等)重试相同的步骤,填写您想要的 SQL 并尝试连接。

我相信有一些连接参数在版本之间发生了变化,因为我已经使用 D2006 DBexpress 成功访问了 Firebird 2.x。但应用程序不是移植的,而是新项目。

于 2010-02-12T13:29:57.713 回答