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.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被清掉了
这些代码以前都是正常运行的,请教一下,是何种问题?
解决方案 »
- 怎样删除一个数据库里两条完全一样的记录中的任意一条?sql server 2000的数据库。无关键字与主键。
- 怎样将adoquery或者dbgrid或者dbgrideh的数据快速导入到access或者MSSQL数据库?
- 紧急::请问那里有TJLITTYBB这个组件?
- 今天买内存435,通过朋友介绍的朋友买的,买完我下楼转两个店,同样内存才385,我晕!!
- 数据库合并问题,在这边也贴出来,大家帮忙看看
- 请问,有没有可以播放REAL文件的VCL?
- 保存问题
- 将Excel导入到ListView如何判断数据全部倒完了呢?
- 请高手分析一下以下语句的含意!
- 请问,如何在控制台程序中使用定时器控件的ontime事件?
- Delphi程序运行后,是否能找回运行过程中所有事件?
- 方法返回一组数据如何编写?
这个是没有问题的啊,把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,然后不小心清掉了SQL.Text。
神秘的消失了,一定是有原因的嘿嘿
qry.sql.clear;
qry.sql.text:='';
qry.execsql;如果打开是表
qry.sql.close;
qry.sql.clear;
qry.sql.text:='';
qry.open;
状态应该还是CLOSE的
但是,在qry前加上 form.qry.close; 就不报错了。
怀疑delphi7或者第三方控件有问题。
没有包什么代码,就是简单的一个click事件:procedure TForm.btnClick(Sender: TObject);
begin
inherited;
if Application.MessageBox(PChar(' xxxx '),'',MB_YESNO) = IDYES then
begin
qry.Close;
qry.SQL.Text:= 'xxx';
qry.ExecSQL;
end;
end;我新建一个工程,模仿这些写法,不会报错
自己建的工程,在application.messagebox 时f7,直接跳确认框。
出错的老工程,在application.messagebox 时f7,跳到vcl\forms.pas,可以跟踪。这是啥原因??
“跳到vcl\forms.pas”帮助不大。
而在新工程中同样的页面,是没有错误的。
谢谢各位参与。