K
kaideng
Unregistered / Unconfirmed
GUEST, unregistred user!
目标:在dbgrid显示检索数据时,动态增加一个自增字段在dbgrid中标记记录号
进展:看了坛子里的很多文章,大体知道应该动态创建一个计算字段实现(别说在数据库设计时增加自增字段,不现实),我用的是adoquery和dbgrid的组合。
问题:计算字段能创建并显示自增,但其他字段都不显示了,例如Sql:='select * from A',运行后dbgrid只显示一个'No'字段(No是我创建的自增字段)。
代码:
...
createfile;//创建计算函数
ADOQuery3.SQL.Add(ssql);
ADOQuery3.ExecSQL;
ADOQuery3.open;
...
procedure createfile;//建計算字段的過程
Var HHH : TStringField ;
begin
HHH:=TStringField.Create(nil);
HHH.FieldName := 'No' ;
HHH.Size := 2 ;
HHH.Calculated := true ;
HHH.dataset := AdoQuery3 ;
end;
procedure TForm1.ADOQuery3CalcFields(DataSet: TDataSet);
begin
ADOQuery3.FieldByName('No').AsInteger:=autoNo;
inc(autoNo);//autoNo是全局变量,控制自增
end;
结语:各位大侠,我错在什么地方了?真的很着急,希望各位赐教
进展:看了坛子里的很多文章,大体知道应该动态创建一个计算字段实现(别说在数据库设计时增加自增字段,不现实),我用的是adoquery和dbgrid的组合。
问题:计算字段能创建并显示自增,但其他字段都不显示了,例如Sql:='select * from A',运行后dbgrid只显示一个'No'字段(No是我创建的自增字段)。
代码:
...
createfile;//创建计算函数
ADOQuery3.SQL.Add(ssql);
ADOQuery3.ExecSQL;
ADOQuery3.open;
...
procedure createfile;//建計算字段的過程
Var HHH : TStringField ;
begin
HHH:=TStringField.Create(nil);
HHH.FieldName := 'No' ;
HHH.Size := 2 ;
HHH.Calculated := true ;
HHH.dataset := AdoQuery3 ;
end;
procedure TForm1.ADOQuery3CalcFields(DataSet: TDataSet);
begin
ADOQuery3.FieldByName('No').AsInteger:=autoNo;
inc(autoNo);//autoNo是全局变量,控制自增
end;
结语:各位大侠,我错在什么地方了?真的很着急,希望各位赐教