如果ADOQuery 中使用了 new Fields 等,或是用了 Lookup 功能。
出错类似
Exception class EOleException with message '发生未知错误。'. Process XXXXXX.exe
的错误。
这个错误又仅在调试时发生,而在直接运行EXE又没有错误提示。
这个错误发的主要原因就是没有对 NULL 进行判断 ;
修改方法,打开 Adodb.pas
查询到 TCustomADODataSet.LocateRecord,在最前面加入如下语句:
if Varisnull(keyValues) or VarisEmpty(KeyValues) then
begin
result:=false;
exit;
end;
begin
result:=false;
exit;
end;
将这个pas加入到你的项目里,或者编译成dcu,将其拷入$delphi/lib底下.