我使用下面的代码动态添加字段的数据集组件:避免重复列名附加
while not ibSQL.Eof do
fieldname := Trim(ibSql.FieldByName('columnnameofchange').AsString);
TDataSet.FieldDefs.Add(fieldname , ftString, 255);
end
问题是,我可能会重名那么什么是筛选副本的最简单的方法和不添加已添加的重复项。
我希望不要通过TDataSet.FieldDefList的增加,因为这将是每一个栏除了繁琐的每一列穿越。并且可以有许多补充。
如果可能,请提供其他解决方案。如果没有,那么我坚持使用FieldDefList迭代。
我还会补充说,筛选SQL查询中的重复项是一个选项,但不是所需的选项。
感谢
我尝试了find方法,但是它在第一次发现尝试时调用了一个GUI消息,说“Field'columnnameofchange'not Found”,然后该过程在其轨道中停止并且不再处理SQL中的任何更多记录。如果fDataSet.FieldDefs.Find(fieldname)= nil那么 fDataSet.FieldDefs.Add(fieldname,ftString,255); –
你说得对。我一定是被继承的TDefCollection的Find方法误导了。在这种情况下,最好尝试IndexOf并检查-1。 –
是的,这工作。谢谢 –