读书人

delphi离奇报错解决思路

发布时间: 2012-03-28 15:40:03 作者: rapoo

delphi离奇报错
qry.Close;//此处不报错
qry.SQL.Text:= 'xxx';
qry.ExecSQL;

if Application.MessageBox('xxx','',MB_YESNO) = IDYES then
begin
qry.Close;//此处报错
qry.SQL.Text:= 'xxx';
qry.ExecSQL;
end;

跟踪了一下,发现在Application.MessageBox 时,qry被清掉了。。。
这些代码以前都是正常运行的,请教一下,是何种问题?

[解决办法]

Delphi(Pascal) code
qry.Close;//此处不报错  qry.SQL.Text:= 'xxx';  qry.ExecSQL;  if Application.MessageBox('xxx','',MB_YESNO) = IDYES then  begin  qry.Close;//此处报错  qry.SQL.Text:= 'xxx';  qry.ExecSQL;  end;
[解决办法]
在代码里面铺天盖地的搜索qry,
目的是检测是否有其他地方也在用这个qry,然后不小心清掉了SQL.Text。
神秘的消失了,一定是有原因的。。。嘿嘿
[解决办法]
如果只是执行SQL语句,只要这样做:
qry.sql.clear;
qry.sql.text:='';
qry.execsql;

如果打开是表
qry.sql.close;
qry.sql.clear;
qry.sql.text:='';
qry.open;

[解决办法]
没有结果集返回的sql,不用close
[解决办法]
加上一个if qry.active then qry.close;呢
[解决办法]
看不出为什么错,应该有其它原因。
[解决办法]
是你代码有问题,不是D有bug

这段代码看不出错误,是不是还有其它的代码...
[解决办法]
是application.messagebox报错吧?是被with语句包起来的吧?
探讨
事实上在application.messagebox后,调用任何控件都报错!
但是,在qry前加上 form.qry.close; 就不报错了。
怀疑delphi7或者第三方控件有问题。

[解决办法]
探讨
引用:
是application.messagebox报错吧?是被with语句包起来的吧?

引用:
事实上在application.messagebox后,调用任何控件都报错!
但是,在qry前加上 form.qry.close; 就不报错了。
怀疑delphi7或者第三方控件有问题。


没有包什么代码,就……

读书人网 >.NET

热点推荐