Delphi 德尔福6->;德尔福:你是在表达古怪吗?

Delphi 德尔福6->;德尔福:你是在表达古怪吗?,delphi,dbexpress,delphi-2006,Delphi,Dbexpress,Delphi 2006,我有一个旧的应用程序(用Delphi6编写),必须移植到Delphi2006(更新2)。该应用程序用于使用DBExpress连接到Interbase 6.x数据库,但新版本需要连接到Firebird 2.x超级服务器 移植进展顺利,没有真正的问题。但是现在,当我尝试从移植的应用程序连接到新的Firebird服务器时,我得到以下错误: 数据库错误 数据库服务器错误:没有获取操作的当前记录 运行使用Delphi6编译的相同应用程序,与相同的Firebird服务器对话运行良好。在Delphi 2006

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

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

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

运行使用Delphi6编译的相同应用程序,与相同的Firebird服务器对话运行良好。在Delphi 2006中编译应用程序所需的更改与数据库代码无关——都是本地图书馆的东西。该应用程序使用TSQLDataset-en数据集提供程序和ClientDataSet

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

我不认为德尔福2006天生支持Firebird。你认为你需要安装吗

以下是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
摘自

,内置DBExpress驱动程序官方从未支持FireBird。
实际上,很多组合根本不起作用

要么:

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

--jeroen

首先,从一个新的单表单应用程序(put SQLConnection、SQLQuery等)中重试相同的步骤,填充您想要的SQL并尝试连接


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

James,切换到FIBPlus需要我替换许多数据集组件,并重写大量的方法列表,以便对这些数据集执行标准操作。现在,这是一个我想尽可能推回的选择。希望有一个使用标准Delphi组件的(更简单的)解决方案。但我会记住FIBPlus。谢谢你的回答。。。阿扬。。。