如何让dbgrid显示数据(100分)

  • 主题发起人 主题发起人 死神十三
  • 开始时间 开始时间

死神十三

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure Tselectform.BitBtn1Click(Sender: TObject);
var sql : string;
aquery1 : tadoquery;
begin
sql := 'select * from 系统参数';
aquery1 := selectquery(sql,1);
selectresult :=tselectresult.create(nil);
selectresult.caption := selectform.Caption;
selectresult.DataSource1.DataSet:= aquery1;
selectresult.dbgrid1.DataSource := selectresult.DataSource1;
selectresult.DBGrid1.Refresh;
aquery1.Free;
selectresult.show;
selectform.Close;
end;

function selectquery(sql : string;tp : word) :TADOQuery ;
var aQuery : tadoquery;
begin
aQuery := TADOQuery.Create(nil);
aQuery.Connection := dmaconnection.adoconnection1;
aQuery.SQL.Add(sql);
aquery.Close;
if tp = 1 then aquery.open
else aquery.ExecSQL;
result := aquery;
end;

dbgrid无法显示数据??
 
procedure Tselectform.BitBtn1Click(Sender: TObject);
var sql : string;
aquery1 : tadoquery;
begin
sql := 'select * from 系统参数';
aquery1 := selectquery(sql,1);
selectresult :=tselectresult.create(nil);
selectresult.caption := selectform.Caption;
selectresult.DataSource1.DataSet:= aquery1;
selectresult.dbgrid1.DataSource := selectresult.DataSource1;
selectresult.DBGrid1.Refresh;
aquery1.Free;//这里是不是不应该释放?如果释放了,查询结果还在吗?
selectresult.show;
selectform.Close;
end;
 
不能释放??

那岂不是还要专门建各数组作查询集??
但是为什么有时释放了,dbgrid仍旧有数据??
只不过要预先把字段名加载dbgrid上
 
你先不释放测试看看。
 
不释放的确实行的
 
那你可能需要考虑了。至少数据显示期间,你需要保留。你可以和显示查询结果的from一起存活。
 
搞个全局变量啊
等到selectresult 关闭再释放不就可以了
 
那么假设我将aquery1设为全局变量
那么怎么判断aquery1是否已经是放了??
 
多人接受答案了。
 
后退
顶部