Tdataset Delphi에서 두 개의 레코드를 교환하는 가장 좋은 방법은 무엇입니까?
문제
일반적으로 델파이 및 데이터베이스 프로그래밍을 사용하면 TDATASET에서 레코드를 바꿀 수있는 더 좋은 방법이있는 경우 궁금합니다.나는 도움을 받아서 어떤 도움을 받아서 어떤 분명한 방법을 찾을 수 없습니다.현재 EOF 마커를 누릴 때까지 데이터 세트를 기록을 이동하려면 프로 시저가 구현되었습니다.그러나 내 데이터의 마지막 기록에 도착하면 이상한 오류가 발생합니다.내가 가진 모든 것은 활성 레코드를 저글링하는 동안 데이터를 유지하면서 데이터를 보존하고자하는 표준 배열 스타일 스왑 루틴을 구현합니다.
지금까지 코드
procedure TForm2.btnDownClick(Sender: TObject);
var
sTmp,sTmp2 : string;
iTmp,iTmp2 : integer;
begin
tblMatched.DisableControls;
if ( tblMatched.Eof <> true ) then
begin
// Grab data to swap
tblMatched.GotoBookmark( tblMatched.GetBookmark );
iTmp := tblMatched.Fields[0].AsInteger;
sTmp := tblMatched.Fields[1].AsString;
tblMatched.Next;
iTmp2 := tblMatched.Fields[0].AsInteger;
sTmp2 := tblMatched.Fields[1].AsString;
// Swap data
tblMatched.Prior;
tblMatched.Edit;
tblMatched.Fields[0].Value := iTmp2;
tblMatched.Fields[1].Value := sTmp2;
tblMatched.Next;
tblMatched.Edit;
tblMatched.Fields[0].AsInteger := iTmp;
tblMatched.Fields[1].AsString := sTmp;
end;
tblMatched.EnableControls;
end;
. 해결책
TCLIENTDATASET와 같은 메모리 내 데이터 집합을 사용하는 것 같습니다.데이터 집합에 색인을 넣으면 단순히 색인을 입력하면 수동으로 재정렬 할 필요가 없으므로 일을 주문할 수 있습니다.사용하려는 기준을 기반으로 인덱스를 설정하십시오.
제휴하지 않습니다 StackOverflow