런타임에 Fielddefs가로드되고 값이 추가되는 Clientdataset이 있습니다. 색인 생성 및 공급자가 없으며 데이터 세트가 XML 파일에 바로 저장됩니다. 값 (단어 유형)을 변경하면 새 레코드가 만들어 지지만 이전 행 데이터는 유지되고 XML 파일에 저장되지만 레코드와 관련되지 않습니다. 또한, 중복 된 비활성 행은 연속 읽기 및 저장과 함게 mulltiply합니다. 이 코드편집 된 데이터이지만 액세스 할 수없는 오래된 데이터를 유지하는 데이터 집합을 피하는 방법은 무엇입니까?
`CFCDS.First;
While not CFCDS.eof do
begin
GetCFGComps();
CFCDS.next;
end;`
Procedure GetCFGComps();
var j: integer;
Begin
for j := 0 to 14 do
begin {READ values to record}
case j of
0: FldPos.L := CFCDS.Fields[j].Value;
1: FldPos.T := CFCDS.Fields[j].Value;
...........
end;
end;
with FldPos do begin
L := 550;
T := 69;
W := 333;
end;
for J := 0 to 14 do
begin
case j of
0: CFCDS.Fields[j].Value:=FldPos.L;
1: CFCDS.Fields[j].Value:=FldPos.T;
....................
end;
end;
CFCDS.SaveToFile(CFGFileName, dfXML);
j:= CFCDS.RecordCount; //always 50 - the correct number
CFCDS.First;
FldPos.L := CFCDS.Fields[1].Value; //returns new values
CFCDS.SaveToFile(DIRY+'CFTEXT.cft',dfBinary); //also has old supernumery rows
end; `
내가 임시 데이터 세트를 생성하는 설정 작업 데이터를 삭제 한 후 변경되지 않는 값에 대한 기록 데이터를 사용하여 저장 등이 주변에 서투른 방법을 생각할 수에게 있습니다. CDS는 불만족 스럽지만 새로운 레코드를 생성 할 수 있다는 점을 고맙게 생각합니다. 그러나 이것은 매우 간단한 값 변경입니다.
코드를 제거한 경우with FldPos do begin L : = 550; T : = 69; W : = 333; 끝; XML 파일은 레코드 데이터 (모든 행 Rowstate "4") 만 있으면 깨끗합니다.
누구나 데이터 세트를 프로그래밍 방식으로 편집 할 수있는 방법이 있습니까? 오래된 액세스 할 수없는 데이터가 보존되지 않고 레코드의 행 데이터 만 포함되어 있습니까? 감사합니다