动态创建Query控件出现的问题(200分)

  • 主题发起人 主题发起人 xgw00
  • 开始时间 开始时间
X

xgw00

Unregistered / Unconfirmed
GUEST, unregistred user!
在做access数据库时候我通过ODBC连到事先建好的access数据库。在Delphi中建立了一个数据模块(data module),名字取为dm,然后在数据模块中放了一个Database控件,名字取为db,然后我动态创建了一个Query对象,当我要把db的databaseName属性赋给query的databaseName属性时候就会出错,请高手帮忙看看怎么回事?应该如何操作?先谢谢各位了!
代码如下:
procedure Tuser.insert;
var
query: Tquery;
begin
query := Tquery.Create(nil);
query.DatabaseName:=dm.db.TdatabaseName; //错误发生行
with query do begin
autorefresh := true;
requestlive := true;
close;
sql.Text := 'select * from users where 1=2';
open;
insert;
end;
setfields(query);
query.Free;
query := nil;
end;
 
你把query.DatabaseName:=dm.db.TdatabaseName;改为
query.DatabaseName:=dm.db.DatabaseName; 试一试
 
to foxphone2003:
我把query.DatabaseName:=dm.db.TdatabaseName;改为
query.DatabaseName:=dm.db.DatabaseName
结果还是一样。
拜托大家帮忙了。
 
肯定是你那里写的有问题,赋值本身是没问题的
过程中其他先注释掉,只留以下,看还有没错
query := Tquery.Create(nil);
query.DatabaseName:=dm.db.DatabaseName;
 
全部去掉,只留以下
query := Tquery.Create(nil);
query.DatabaseName:=dm.db.DatabaseName;
还是出现同样问题的。
 
试了一下,demo没有问题,如下
var t : TQuery;
begin
t := TQuery.Create(nil);
t.DatabaseName := db1.DatabaseName;
t.SQL.Text := 'select * from animals';
t.Active := True;
ds1.DataSet := t;
dbgrd1.DataSource := ds1;
end;
你应该把错误帖出来,看看到底是什么错
 
把你的DM文件包含到当前的users里试一试
 
问题已经解决,如xoyo_wu所说,当然也要谢谢foxphone2003的热心帮助
 
后退
顶部