如何动态创建一个ADOQuery?(50分)

  • 主题发起人 主题发起人 Serena
  • 开始时间 开始时间
S

Serena

Unregistered / Unconfirmed
GUEST, unregistred user!
想在程序中如何动态创建一个ADOQuery,
var tmp:TADOQuery;
begin
tmp.create(self);
....
end;

报错:stackoverflow
问题出在哪了?
 
tmp:=tadoquery.create(参数).........才对
 
tmp:=TadoQuery.create(self);
....
tmp.free;
 
试试 tmp:=application.create(TAdoquery);
 
C的写法是:

TADODataSet *youradovar=new TADODataSet(Application);
-----------其它程序行
delete youradovar;

尽量不要用ADOQuery,Delphi这个控制有bug.
 
还不发分呀
 
var tmp:TADOQuery;
begin
tmp:=TADOQuery.create(nil);
....
tmp.free;
end;
 
_qry:TADOQUERY;
begin
_qry:=TADOQuery.Create(self);
_qry.Connection :=dm1.DBMTinfo;
try
dm1.DBMTinfo.BeginTrans ;
_s := ' select * from Accounts where AccountID = '''+ _qS+ '''';
with _qry do
begin
close;
sql.Clear;
sql.add(_S);
open;
end;

if _qry.IsEmpty then
begin
_s := 'update Accounts set AccountID='''+_qs+'''' + ' WHERE AccountID=''' + _c +'''';
with _qry do
begin
Close;
SQL.Clear;
SQL.Add(_s);
EXECSQL;
end;
btnbar.RenSectionTo(_qs);
end;
dm1.DBMTinfo.CommitTrans;
except
dm1.DBMTinfo.RollbackTrans ;
showmessage('Error');
end;
end;
end;
 
我在程序中一直这么用
 
Q := TADOQuery.Create(self);//maybe self,nil nil use for only a unit,not parent.
try
Q.AdoConnectTion :='Something';
Q.SQL.Clear;
Q.SQL.Add('You perform');
Q...
Finally
Q.Free.
end;

All is my experise
 
多人接受答案了。
 
后退
顶部