我使用下面的代碼動態添加字段的數據集組件:避免重複列名附加
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。 –
是的,這工作。謝謝 –