程序需要动态添加字段,然后删除再重新添加,
在清除字段的时候使用qryHGCircs.Fields.Clear;
结果多执行几次后会报错,请问有其他的方法可以解决吗?
解决方案 »
- delphi怎样连接Sqlite 增删改查
- 条型图或者柱状图大家都用什么控件?
- 一段验证用户和密码的代码,请高手来看看有什么错误没?####问题解决就给分####
- 如何在*.dll文件中增加有个form1,在需要时显示这个表单?, form1.showmodal;?
- 高分求解。 请问怎样在BDE中安装MSSQL的驱动???
- 简单sql问题,大家都来看看,帮帮忙了!
- 吐血问题: 如何实现在同一行中将内容打印两次(打印机不走纸,且无法用TEXTOUT)
- 需要关于流的资料2
- 为什么IdTCPClient在readbuffer时会提示ClosedGracefully的错误
- 动态创建TClientSocket后的问题!
- Delphi ADO,DataGrid控件 的增删改查怎么弄啊?
- 高手帮我看看这个软件的皮肤是用什么控件?觉得挺漂亮的
var
f:TField;
begin
f := TField.Create(nil);
f.FieldName := 'xxx';
ADOQuery1.Fields.Add(f);
end;
procedure TfmHGCircs.AddFields(DateList: string);
var
tmpFloatField: TFloatField;
tmpStrField: TStringField;
tmpstr: string;
i: Integer;
begin
qryHGCircs.Close; qryHGCircs.Fields.Clear; DBGridEh.Columns.Clear;
tmpFloatField := TFloatField.Create(qryHGCircs);
tmpFloatField.FieldName := 'l_fund_id';
tmpFloatField.Name := 'qryHGCircsl_fund_id';
tmpFloatField.DisplayWidth := 8;
tmpFloatField.FieldKind := fkData;
tmpFloatField.DisplayLabel := '编号';
tmpFloatField.ReadOnly := False;
tmpFloatField.DataSet := qryHGCircs; tmpStrField := TStringField.Create(qryHGCircs);
tmpStrField.FieldName := 'vc_fund_name';
tmpStrField.Name := 'qryHGCircsvc_fund_name';
tmpStrField.FieldKind := fkData;
tmpStrField.Size := 22;
tmpStrField.DisplayWidth := 16;
tmpStrField.DisplayLabel := '名称';
tmpStrField.DataSet := qryHGCircs; if Trim(DateList) <> '' then
for i := 0 to HowMany(DateList, '|') do
begin
tmpFloatField := TFloatField.Create(qryHGCircs);
tmpstr := hsGetCol(DateList, i, '|');
tmpFloatField.FieldName := 'en_deal_balance_' + tmpstr;
tmpFloatField.Name := 'qryHGCircs' + tmpFloatField.FieldName;
tmpFloatField.DisplayWidth := 18;
tmpFloatField.FieldKind := fkData;
tmpFloatField.DisplayLabel := tmpstr;
tmpFloatField.DisplayFormat := '#,##0.00';
tmpFloatField.ReadOnly := False;
tmpFloatField.DataSet := qryHGCircs;
end; tmpFloatField := TFloatField.Create(qryHGCircs);
tmpFloatField.FieldName := 'en_total_balance';
tmpFloatField.Name := 'qryHGCircs' + tmpFloatField.FieldName;
tmpFloatField.DisplayWidth := 20;
tmpFloatField.FieldKind := fkData;
tmpFloatField.DisplayLabel := '汇总';
tmpFloatField.DisplayFormat := '#,##0.00';
tmpFloatField.ReadOnly := False;
tmpFloatField.DataSet := qryHGCircs;
DBGridEh.Columns.AddAllColumns(True);
for i := 2 to DBGridEh.Columns.Count - 1 do
DBGridEh.Columns.Items[i].Footer.ValueType := fvtSum;
end;