gpt4 book ai didi

delphi - Delphi 项目中 Advantage 无法识别错误 5018 句柄

转载 作者:行者123 更新时间:2023-12-01 19:24:18 25 4
gpt4 key购买 nike

我有一个 delphi 项目,不知何故已损坏。我升级到 Advantage 11.1 组件(使用 XE),现在打开项目时收到以下错误消息:

acctTbl: Error 5018: The handle given was not recognized by Advantage. Verify specified handle is open/active. The given handle is not recognized as a valid Advantage Client Engine

由于发生错误,数据模块DFM未构建,因此我无法“调整”任何设置。

acctTbl 是 DFM 中的第一个表,因此后面的表可能会出现错误,但我无法判断。

我们没有使用服务器,只是使用“本地服务器”。

我已尝试返回到组件的版本 10,但错误仍然存​​在。

我还尝试删除所有项目目标代码并仅打开 PAS 和 DFM 文件(通过从 SVN 恢复)。

非常感谢任何帮助。

最佳答案

您可以在文本编辑器(如记事本)中打开 .dfm,然后将 AdsConnection.Connected 属性更改为 false,然后将任何 AdsTableADSQuery 组件的 Active 标志更改为 false。 (我建议首先关闭 IDE,以确保它不会缓存引用。)这至少可以让您打开项目并进行使用新版本的 ADS 进行编译所需的任何更改。

如果该文件已经通过 XE 之前的许多旧版本的 Delphi 进行了更新,那么您可能仍然有一个二进制格式的 .dfm 文件(这意味着您会在其中看到各种奇怪的符号)打开 .dfm 文件时使用记事本)。如果是这种情况,Delphi 包含一个转换实用程序(convert.exe,可在 $(DELPHI)\Bin 文件夹中找到),您可以使用以下步骤进行转换将其转换为文本格式,然后进行更改(之后无需将其转换回来 - 默认情况下是在创建新表单时创建文本 .dfm 文件,Delphi 可以很好地使用它们作为文本) 。

首先在安全的地方备份数据模块的 .DFM!

制作备份副本后,在项目文件夹中打开命令窗口,然后运行

Convert.exe -1 YourDataModule.dfm

该命令表示就地转换 (-i),这意味着现有的二进制 .dfm 被新文本 .dfm 覆盖(这也是我强调的原因首先制作备份副本)。如果您不想覆盖,可以省略 -i 开关,它会在文件夹中创建一个 YourDataModule.txt 文件;然后,您可以手动将 YourDataModule.dfm 重命名为其他名称,然后将 YourDataModule.txt 重命名为 YourDataModule.dfm

关于delphi - Delphi 项目中 Advantage 无法识别错误 5018 句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14569351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com