의료 기기에서 가져온 데이터를 저장하는 TClientDataSet
이 있습니다. 이 클라이언트 데이터 집합은 그리드에 연결되어 실시간으로 데이터를 표시합니다. 내 문제는 사용자가 데이터를 편집 할 때 계측기가 새 패킷을 보내면 사용자가 수정했지만 아직 게시하지 않은 데이터는 현재 레코드에 TBookmark
만 가져올 수 있고 새 레코드를 추가 할 수 있기 때문에 손실됩니다. 그 다음에 goto
저장된 북마크 (때로는 새로운 기록으로 인해 올바른 기록이 아닐 수 있습니다). 필요한 경우 데이터 세트의 State
, Post
을 확인한 후 State
을 설정하면 State
에 영향을 미치지 않고 클라이언트 데이터 세트의 데이터를 업데이트 할 수있는 방법을 찾고 있습니다. 이것은 가능한가?현재 레코드를 변경하지 않고 클라이언트 데이터 세트의 데이터를 수정할 수 있습니까?
0
A
답변
4
데이터 집합을 복제하고 복제본의 데이터를 수정하십시오.
캐리 젠슨 거기에 문서는 여기에 있습니다 : http://edn.embarcadero.com/article/29416는
은 기본적으로 당신은 당신은 참/거짓 설정에 설명서를 읽고 결정해야합니다
var
lEdDataset: TClientdataset;
begin
lEdDataset := TClientDataSet.create(nil);
try
lEdDataset.CloneCursor(SourceDataSet, True**);
StoreMedDeviceRecord(lEdDataset);
finally
lEdDataset.free;
end;
** 같은 것을 필요 당신은 실제로 필요합니다 (나는 손을 기억할 수 없습니다)
+0
내 자신의 대답에 대한 참고로, 항상이 복제본을 생성하거나 해제하는 대신 'DeviceLogger'객체에서 열어 둘 수 있습니다. 이것이 더 나은 솔루션인지 여부는 앱에 따라 다릅니다. –
+1
들어오는 데이터가 백그라운드 스레드에 의해 처리되는 경우 동기화 데이터가 기본 데이터에 직렬화되도록해야합니다. – afrazier
귀하의 응용 프로그램에 악기의 새로운 데이터가 삽입되는 것처럼 q가 읽 힙니다. 그 맞습니까? – MartynA
@MartynA 정확히 –