나는 동적으로 다음 코드를 사용하여 TDataSet의에 필드를 추가하고 :방지 중복 열 이름 추가
while not ibSQL.Eof do
fieldname := Trim(ibSql.FieldByName('columnnameofchange').AsString);
TDataSet.FieldDefs.Add(fieldname , ftString, 255);
end
문제는 내가 중복 화면하는 가장 쉬운 방법입니다 그래서 어떤 중복 된 이름을 얻을 수 있다는 것입니다 및 이미 추가 된 중복을 추가하지 마십시오.
각 열 추가에 대해 TDataSet.FieldDefList를 통과하지 않기를 바랄 때마다 모든 단일 열 추가가 지루할 수 있습니다. 그리고 많은 추가가있을 수 있습니다.
가능한 경우 다른 해결책을 제공해주십시오. 그렇지 않으면 FieldDefList 반복을 사용하여 붙어 있습니다.
또한 SQL 조회에서 중복을 선별하는 것은 옵션이지만 원하는 옵션이 아님을 추가합니다.
감사
find 메소드를 시도했지만 "Field 'columnnameofchange'not Found"라고 표시된 첫 번째 find 시도에서 GUI 메시지가 표시되고 프로 시저가 해당 트랙에서 중지되고 SQL에서 더 이상 recordsin을 처리하지 않습니다. if fDataSet.FieldDefs.Find (fieldname) = nil then fDataSet.FieldDefs.Add (fieldname, ftString, 255); –
당신이 옳습니다. TDefCollection의 상속 된 Find 메서드로 오도되었습니다. 이 경우 IndexOf를 시도하고 -1을 확인하십시오. –
예, 그렇습니다. 감사 –