在不同子form中执行同一个query出错,怎么办?(50分)

  • 主题发起人 主题发起人 武夫
  • 开始时间 开始时间

武夫

Unregistered / Unconfirmed
GUEST, unregistred user!
首先在子表单form1中执行ADOquery1,
接着在另一表单form2中再次执行ADOquery1(查询的内容跟form1中的不同),
此时程序出错,提示"XXXX(使用该query的控件):Field 'XXXX(某字段名)' not found".
但是在form1中可以再次执行ADOquery1而不出错。
不知是何原因?

请高手帮下忙。(如果不够分可以再给)
====================
在程序中已作如下处理,
1。在查询部分均采用如下格式:
with Adoquery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from table1');
Open;
end;

2。执行form时使用:
begin
Application.CreateForm(TForm1, Form1);
Form1.Show;
end;

3。关闭form时使用:
begin
action:=cafree;
end;

 
你贴出来的代码不能说明问题。
上面不是提示字段找不到吗?
你查询的语句可能有问题。可能有不能识别的字段名。
或者,你是不是用的固定字段,而后数据库又经过了改动?
 
with form1.Adoquery1 do
 
字段名不会有问题的。

如果首先执行的是form2,那么再去执行form1就出现同样的错,
而form2也同样可以正常使用。

也就是说,除了第一个执行的form外,后面打开执行的form就出错。
 
TO:海哥
不是这个的问题。
 
你提供的条件太少,不足以判断错误原因。
 
你可能手动建立了字段对象。
 
有可能你连接的database在第一个form引用了,而第二个form没有引用
 
能不能说的清楚些
 
uses unit 没有?
 
这两个form使用的是放在一个DataModule中的ADOquery。

在两个form中已经都uses了该DataModule
 
我想应该是查询字段的问题 要不你试着将form1和form2的查询换一下?
 
各位,以前有一个问题也跟我这个类似,

http://www.delphibbs.com/delphibbs/dispq.asp?lid=242373

但是最后该问题好像也是没有结果。
 
类似的情况我一般是在两个form中不用数据感知控件,查询的结果
给form中的控件赋值就不会出现你说的情况了。
 
你在关闭form的时候把SQL关闭就可以啦
 
如果不介意的话,把CODE全贴出来吧,在FORM引用/释放上有问题.
 
接受答案了.
 
后退
顶部