我正在使用以下代码向TDataSet动态添加字段:
while not ibSQL.Eof do
fieldname := Trim(ibSql.FieldByName('columnnameofchange').AsString);
TDataSet.FieldDefs.Add(fieldname , ftString, 255);
end
Run Code Online (Sandbox Code Playgroud)
问题是我可能会得到重复的名称,因此筛选重复项而不添加已添加的重复项的最简单方法是什么?
我希望不要遍历添加的每一列的TDataSet.FieldDefList,因为这对于添加的每一列都是很繁琐的。并且可以有很多补充。
如果可能,请提供其他解决方案。如果没有,那么我将无法使用FieldDefList迭代。
我还将补充一点,在SQL查询中筛选出重复项是一个选项,但不是所需的选项。
谢谢
我创建了一个名为TRecord的类来存储数据.我创建了另一个包含TRecord类作为对象列表的类.我使用TRecord在对象列表中添加记录,然后在完成后将其设置为父类TTableStore.FManyrecords.
我可以检索列表,COUNT显示相同数量的记录,但它不会让我检索每个单独的记录.
问题是我无法访问记录程序/方法甚至定义记录的检索.查看最后一行伪代码:
TRecord = class(TObject)
private
FDescription : Variant;
FDirectDeposit : Double;
public
function GetDescription : Variant;
function GetDirectDeposit : Double;
procedure SetDescription(Value: Variant; DoValidation: Boolean = True);
procedure SetDirect(Value: Double; DoValidation: Boolean = True);
end;
TTableStore = class(TObject)
private
FManyRecords : TObjectList ;
FTitle2 : Variant;
FNormalEarn : Double;
public
function GetTitle2 : String;
function GetNormalEarn : Double;
function GetManyRecords: TObjectList;
procedure SetManyRecords(Value: TObjectList; DoValidation: Boolean = True);
procedure SetTitle2(Value: String; DoValidation: Boolean = True);
procedure SetNormalEarn(Value: Double; …Run Code Online (Sandbox Code Playgroud)