Tquery如何删除和动态添加自定义的字段 程序需要动态添加字段,然后删除再重新添加,在清除字段的时候使用qryHGCircs.Fields.Clear; 结果多执行几次后会报错,请问有其他的方法可以解决吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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; 日志提示的错误执行qryHGCircs.Fields.Clear;出错Invalid pointer operation2009-09-04 08:50:40: 执行DBGridEh.Columns.Clear;出错Access violation at address 00690920 in module 限制输入 如何才能删除或移动正在使用的文件 如何删除XML中都某节点? 我想能够查询产品任意时间段期初数、本期收入、本期发出、结余,数据库应如何设计才合理? 有没有这样的结构try..except..finally..end 怎么在已经查询过的数据后面添加按新条件查询的记录?? 为什么我的代码执行后,插入记录老是不稳定,问题出在哪? IE超级拖拽说说方法原理 好久没来了,今天来看看! :) 请教,如何实现表的对考啊!! 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;