【问题标题】:Delphi 6 -> Delphi 2006 dbexpress weirdness?Delphi 6 -> Delphi 2006 dbexpress 怪异?
【发布时间】:2009-08-28 10:17:51
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: delphi dbexpress delphi-2006


    【解决方案1】:

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

    【讨论】:

    • James,切换到 FIBPlus 需要我替换很多数据集组件,并重写我们的方法的广泛列表以对这些数据集执行标准操作。现在,这是我想尽可能推迟的一种选择。希望有一个使用标准 Delphi 组件的(更简单的)解决方案。但我会记住 FIBPlus。感谢您的回答。 ...阿扬...
    【解决方案2】:

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

    要么:

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

    --杰罗恩

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-26
        • 1970-01-01
        • 2010-11-22
        • 2011-04-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多