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被清掉了。。。
这些代码以前都是正常运行的,请教一下,是何种问题?
[解决办法]
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语句包起来的吧?