DELPHI中的ADODB.pas 单元中,一个直到今天都还没有解决的BUG

如果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;


将这个pas加入到你的项目里,或者编译成dcu,将其拷入$delphi/lib底下.    

 

你可能感兴趣的:(exception,null,Class,exe,Delphi)