关于ADoquery动态加载列


      这两天为了实现让客户自定义的加载子表列表的列的功能.  所以必须找到adoquery设计期间的add field的对应程序.

我就自己在ADoquery的属性找到了adoquery1.fields.add()方法..非常高兴.但后来试了很多次都不行.就是因为要add(TField).但这个类应该怎样弄呢.?所以问题就卡住了......

第二天我在网上找到这个

procedure AddField(FdName: string; DSName: TDataSet; dt: TFieldClass);
begin
if DSName.FindField(FdName) <> nil then exit;
DSName.Close;
try
with dt.Create(DSName) do
begin
FieldName := FdName;
DisplayLabel := FdName;
FieldKind := fkData;
Name := DSName.Name + 'DSDesigner' + inttostr(DsName.FieldCount);
index := DSName.FieldCount;
DataSet := DSName;
end;
except
on e: exception do
raise Exception.Create(E.Message);
end;
end;

让我受益非汇少

但以上要注意的是有两点.

1.其中TFieldclass是一个类参数..他的原形定义是 TFieldclass = class of TField

所以传递的时类.不是类的对象.

2.在设用方法时.AddField('aaaa';adoquery1;TStringfield);其中TStringField 就是TField的一个子类.也可用TintegerField....看实际的需要)

  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值