Delphi 6 - > Delphi 2006 dbexpress怪异吗?

时间:2009-08-28 10:17:52

标签: delphi dbexpress delphi-2006

我有一个较旧的应用程序(用Delphi 6编写),必须移植到Delphi 2006(更新2)。该应用程序用于使用DBExpress连接到Interbase 6.x数据库,但新版本需要连接到Firebird 2.x Superserver。

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

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

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

任何人都知道如何或为何?对DBExpress的任何更改可能会导致此行为? 感谢。

3 个答案:

答案 0 :(得分: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

摘自Here

答案 1 :(得分:0)

Until Delphi 2010,内置的DBExpress驱动程序官方从不支持FireBird 在实践中,许多组合根本没有用过。

或者:

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

- 的Jeroen

答案 2 :(得分:0)

首先,从一个新的1表单应用程序(放置SQLConnection,SQLQuery等)重试相同的步骤,填写所需的SQL并尝试连接。

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