德尔福6-> Delphi 2006 dbexpress 怪异之处?

发布于 2024-08-03 00:23:44 字数 420 浏览 7 评论 0原文

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

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

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

运行用 Delphi 6 编译的同一应用程序,与同一 Firebird 服务器通信运行良好。在 Delphi 2006 中编译应用程序所需的更改与数据库代码无关 - 所有本地库内容。该应用程序在数据集提供者和客户端数据集上使用 TSQLDataset。

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

I have an older application (written in Delphi 6) that has to be ported to Delphi 2006 (update 2). The application used to connect to an Interbase 6.x database using DBExpress, but the new version needs to connect to a Firebird 2.x Superserver.

Porting went OK, no real problems. But now, when I try to connect to the new Firebird server from the ported app, I get the following error:

Database error
Database Server Error: no current record for fetch operation

Running the same application compiled with Delphi 6, talking to the same Firebird server runs fine. The changes needed to compile the app in Delphi 2006 weren't related to the database code - all local library stuff. The application uses TSQLDataset en datasetproviders and clientdatasets.

Anybody has any idea how or why? Any changes to DBExpress that might cause this behaviour?
Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

笑饮青盏花 2024-08-10 00:23:44

我认为 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

摘自此处

I don't think Delphi 2006 supports Firebird natively. Think you need to install FIBPlus

Heres a list of what is supported in 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

Extracted from Here

っ〆星空下的拥抱 2024-08-10 00:23:44

直到 Delphi 2010 ,内置的 DBExpress 驱动程序官方从未支持 FireBird。
在实践中,很多组合根本不起作用。

要么:

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

——杰罗恩

Until Delphi 2010, the built in DBExpress drivers officially never supported FireBird.
In practice, a lot of combinations never worked at all.

Either:

  • go for a DBExpress driver officially supporting FireBird (search google),
  • or move to another database middle layer (FIBPlus that James suggests is really good).

--jeroen

只是在用心讲痛 2024-08-10 00:23:44

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

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

First of all, retry the same steps from a new, 1-form app (put SQLConnection, SQLQuery etc etc), fill with the SQL you want and try to connect.

I believe there's some connection parameter that changed between versions, since I've used D2006 DBexpress to access Firebird 2.x with success. But the application were not ported, but new projects.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文