Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi项目中Advantage无法识别错误5018句柄_Delphi_Advantage Database Server - Fatal编程技术网

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

Delphi项目中Advantage无法识别错误5018句柄,delphi,advantage-database-server,Delphi,Advantage Database Server,我有一个delphi项目不知何故已经损坏了。我升级到Advantage 11.1组件(使用XE),现在打开项目时收到以下错误消息: acctTbl:错误5018:未识别给定的句柄 优势。验证指定的句柄是否打开/处于活动状态。给定句柄 未被视为有效的Advantage客户端引擎 由于发生错误,数据模块DFM未构建,因此我无法“调整”任何设置 acctTbl是DFM中的第一个表,因此下面的表可能会出错,但我不知道 我们使用的不是服务器,而是“本地服务器” 我尝试返回到组件的版本10,但错误仍然存在

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

acctTbl:错误5018:未识别给定的句柄 优势。验证指定的句柄是否打开/处于活动状态。给定句柄 未被视为有效的Advantage客户端引擎

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

acctTbl
是DFM中的第一个表,因此下面的表可能会出错,但我不知道

我们使用的不是服务器,而是“本地服务器”

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

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


非常感谢您的帮助。

您可以在文本编辑器(如记事本)中打开
.dfm
,将
AdsConnection.Connected
属性更改为
false
,并将任何
AdsTable
ADSQuery
组件的
活动标记更改为
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
,感谢您的帮助p、 我对DFM进行了建议的更改,并收到了相同的错误消息。我们所有的DFM都是文本格式的。“AdsConnection.Connected”行不在那里,所以我添加了它。我在添加行和不添加行的情况下尝试了它。所有AdsTable活动标记都被更改为false。然后,您打开的ADS连接或表不在datamodule中。ADS仅使用连接句柄打开连接或表或查询。在项目中搜索其他TADS组件ts;有东西试图打开ADS连接或数据字典,您需要找到它。:-)您还可以在初始化部分检查datamodule的.pas文件,以查找可能打开连接的任何内容。再次感谢您的响应,但我仍然收到相同的错误消息。我卸载了11,删除了所有10和11个文件,重新安装了11,并在IDE中检查了搜索路径,但仍然收到了错误。我非常感谢您的帮助。您说最初您的项目在升级到ADS v11时开始演示问题,这意味着您应该恢复到v10(最新的工作版本)。我卸载了版本11,重新安装了版本10。误差没有差别。