【问题标题】:Where is the location that BDE and ADO DLL's are stored in my System.?BDE 和 ADO DLL 存储在我的系统中的位置在哪里?
【发布时间】:2017-05-10 08:22:47
【问题描述】:

我正在尝试探索 Delphi 中的 BDE 和 ADO。我在哪里可以找到 BDE 和 ADO DLL 文件,以便我可以探索其中编写的所有函数。Delphi 5 和 BDE 已经安装在我的系统中

【问题讨论】:

    标签: delphi ado bde


    【解决方案1】:

    BDE:传统上,主要的 BDE DLL Idapi32.Dll 被安装到

    C:\Program Files (x86)\Common Files\Borland Shared\BDE
    

    默认安装 Delphi。我尚未将 BDE 安装到最新 (Win7/Win10) 版本的 Windows 上,但如果 DLL 以 SysWOW64 结尾,我不会感到惊讶。

    ADO:您需要查看 Delphi 源文件ADOInt.Pas 以识别您的 Delphi 版本使用的 ADO DLL 的名称。它将位于文件顶部的一个部分中,如下所示(以下是针对 D7,因为我没有安装 D5):

    unit ADOInt;
    
    // ********************************************************************* //
    // Type Lib: C:\PROGRAM FILES\COMMON FILES\SYSTEM\ADO\MSADO15.DLL        //
    // IID\LCID: {00000200-0000-0010-8000-00AA006D2EA4}\0                    //
    // PASTLWTR : 1.1                                        //
    // HelpString: Microsoft ActiveX Data Objects 2.1 Library                //
    // Version:    2.1                                                       //
    // ********************************************************************* //
    

    顺便说一句,您需要 32 位版本的 MSADO15.DLL,它在我的(Win10 64 位)系统上位于

    C:\Program Files (x86)\Common Files\System\ado
    

    了解Delphi如何使用BDE和ADO需要学习的Delphi源文件是

    DBTables.Pas、BDE.Int 和 SMIntf.Pas 用于 BDE,ADOInt.Pas 和 ADODB.Pas 用于 ADO。

    正如您将看到的,在 BDE 代码中,没有与 TAdoConnection 完全对应的内容,这就是为什么我在回复您的其他问题时告诉您,您正在浪费时间尝试通过提出连接来简化转换可以用于两者的类型。很抱歉这么说,但您不得不问这个问题这一事实是一个很好的迹象,表明您在尝试提出“混合连接”解决方案时已经超出了您的能力范围。

    【讨论】:

    • 是的,我知道混合连接是不可能的。我现在要做的是为 BDE 编写一个包装类,以便它可以使用 ADO 连接。这是一个可行的解决方案吗?
    • 恐怕这比尝试编写“混合连接”更可行。 BDE 根本没有与 TAdoConnection 等效的功能。它使用 TSession 对象和 BDE 语句句柄代替。
    【解决方案2】:

    我认为 BDE 的默认文件夹是 C:\Program Files (x86)\Common Files\Borland Shared\BDE 据我所知,Delphi 5 安装允许您选择文件夹,因此它可能会有所不同。

    由于它有点旧,BDE 会出现一些问题。我认为它在处理 blob 字段方面存在错误。

    您是否正在寻找需要 BDE 的旧版应用程序?

    我认为 ADO 是一个更好的选择。 寻找单元 ADODB.pas 和 ADODb.dll

    【讨论】:

    • 是的,我正在开发一些旧版应用程序。试图将 BDE 连接转换为 ADO。有什么建议吗?
    • OP 识别 Ado DLL 所需的单位是 ADOInt.Pas,而不是 ADODB.Pas。而ADBDb.Dll不是相关的DLL,它是DotNet的DLL。
    • 抱歉,好久没用Delphi 5了。我见过同时使用 ADO 和 BDE 的应用程序,因此您不必一次转换所有内容。这允许您最初仅在 BDE 出现问题的地方使用 ADO。
    猜你喜欢
    • 1970-01-01
    • 2012-06-14
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多