1

我正在尝试通过从我的安装程序执行以下命令行来安装 BDE 引擎,如下所示。

ShellExecute(0, nil, 'regsvr32.exe', 'BdeInst.dll', nil, SW_SHOW);

它会弹出一条消息,请求允许在特定位置安装 BDE 引擎。当您单击确定按钮时,它会弹出另一条消息,如下所示。

在此处输入图像描述

我确实验证了我的硬盘中有足够的可用空间。当您单击 Yes 按钮时,它会成功安装 BDE 引擎。

我不知道为什么。另外,网上没有太多关于这方面的信息。

任何输入将不胜感激。

4

3 回答 3

2

BDE 是一款旧软件,现已弃用数年。虽然人们仍然在运行它,但我相信它最初是 16 位软件,可能永远不会改变。我有一种感觉,该消息来自某些无法理解您的大硬盘驱动器的软件。我不记得 BDEInst.dll 是否是 Borland 的 BDE 安装程序,但该消息可能来自该安装程序。您还提到“正在开发安装程序......”。

它应该安装到 XP,我会先让它在那里工作。Win 7 和 8 引入了更多问题。但是,如果可能,请重新考虑是否要在此时安装 BDE。

于 2012-06-23T14:54:42.160 回答
2

首先,BDE 已被弃用,您最好避免使用它,即使与其他版本的 Delphi 一起使用。

您周围的第三方组件能够在不使用 BDE 的情况下直接连接到 DB。参见DevArtSQLDirectDASoft(它的 FreeDAC 是免费的),以及许多其他组件,如Zeos我们的 SynDB 开源库

您达到了众所周知的“2GB 舍入误差”。BDE 安装程序会受到影响,但使用 BDE 的应用程序也会受到影响。

BDE 安装程序有问题。

它只是不适用于较新版本的 Windows。

您周围还有其他安装程序,例如Windows 7 上的 interbase 和 BDEEmbarcadero 时代的 Bde Installer

应用程序中使用的 BDE 也会受到同样的 2GB 限制,这与GetDiskFreeSpace使用不当有关。

Embarcadero CodeCentral 上有一个解决方法,值得将其包含在您的应用程序代码中。

于 2012-06-24T15:41:52.243 回答
1

bdeinst.dll 使用 Win32 API 函数GetDiskFreeSpace,当针对大于 2GB 的驱动器执行时,该函数可能会报告完全误导的值 - 有关基于开发人员的解决方法,请参阅http://support.microsoft.com/kb/202455

我知道这一点的原因是因为我之前被它击中并检查了 bdeinst.dll 二进制文件的导入,该二进制文件表明它使用GetDiskFreeSpaceA(这是函数的 ascii 版本)。

如果您必须使用 BDE,那么您只需要接受在尝试安装应用程序时可能会看到此错误

于 2012-06-24T11:23:46.600 回答