在作一个项目时,遇到一个问题:在一个窗口中我同时使用了3个query,分别连接3个DBGrid,结果再关闭窗口时出现了错误,提示为“access violation at...”。我为了查找问题,我在一个新建的application中建立了一个窗口,里面的内容和上述窗口内容完全一样,却没有问题。怀疑是原来的项目中使用了较多的数据源,但反复检查也没有发现问题(query,storedproc的使用都完全正确)。请问各位高手这是怎么回事?
调试欢乐多
query5.close;
query6.close;
query7.close;
form1.release;
就在关闭窗口时报错。如果改为form1.close;这时不报错,但在关闭创建form1的窗口时要报错。
另外说明一下,如果使用一个query就不会出错。现在我都搞不清是query使用的问题还是资源释放的问题了。
就在创建的地方form1.free;
var
Form1: TForm1;
begin
form1 := tform1.create(self);
try
form1.showmodal;
finally
form1.free;//这样释放
end;
end;
managerform1和managerform2里则没有问题。managerform1和managerform2比较简单一些,其中managerform1是用于信息显示,managerform2是用于身份验证,而managerform3是创建调用其他功能窗口的平台,有一个下拉菜单,但没有query和storedproc组件。以上情况供各位大侠参考。