ClientDataSet을 파일로 저장하고이 파일을 AdoQuery (AdoQuery.LoadFromFile())에서 열려고합니다. 가능합니까?Delphi, ADOQuery, ClientDataSet
또는 어떻게 pfADTG 파일 형식으로 데이터 집합을 저장할 수 있습니까?
안부
파블
ClientDataSet을 파일로 저장하고이 파일을 AdoQuery (AdoQuery.LoadFromFile())에서 열려고합니다. 가능합니까?Delphi, ADOQuery, ClientDataSet
또는 어떻게 pfADTG 파일 형식으로 데이터 집합을 저장할 수 있습니까?
안부
파블
내가 AdoQuery에서이 파일을 파일 다음 열 ClientDataSet에 저장합니다 (AdoQuery.LoadFromFile을()). 가능한가?
아니요. TClientDataSet 및 TAdoQuery와 같은 TCustomAdoDataSet 자손은 바이너리 버전 또는 XML 파일 형식에서 서로 호환되지 않습니다. Delphi의 TXmlTransform을 사용하여 저장된 CDS 파일을 Ado 형식으로 변환하려고 시도해 볼 수는 있지만 직접 해본 적이 없습니다.
또는 어떻게 데이터 세트를 pfADTG 파일 형식으로 저장할 수 있습니까?
"데이터 세트"가 TClientDataSet을 의미하는 경우이를 직접 수행 할 수 없습니다. CDS에서 AdoQuery로 필드별로 행 단위로 복사 한 다음 AdoQuery에서 SaveToFile을 호출하면됩니다.
업데이트 : 나는 거부했다 두려워이 답변에 편집에서, 당신은 당신의 AdoDataSet가 비어와 연결 문자열이없는 경우 어떻게 할 것인지를 물었다; TAdoDataSet을 사용하여 확실히 SaveToFile 및 LoadFromFile을 사용하여 데이터를 로컬에 저장할 수 있습니다. 아래는 ClientDataSet을 생성하고 채우는 미니멀리스트 프로젝트입니다. 그런 다음 구조와 데이터를 AdoDataSet으로 복사합니다.
procedure TForm1.FormCreate(Sender: TObject);
var
i : Integer;
begin
// Note: ClientDataSet1 has had two FieldDefs created in the IDE,
// an ID integer field and an AName string field with a size of 20
// Create and populate ClientDataSet1
ClientDataSet1.CreateDataSet;
ClientDataSet1.InsertRecord([1, 'Name1']);
ClientDataSet1.InsertRecord([2, 'Name2']);
// Copy ClientDataSet1's FieldDefs to AdoDataSet1
AdoDataSet1.FieldDefs.Assign(ClientDataSet1.FieldDefs);
// Now, copy the data fielf-by-field, row-by-row
AdoDataSet1.CreateDataSet;
try
ClientDataSet1.DisableControls;
AdoDataSet1.DisableControls;
ClientDataSet1.First;
while not ClientDataSet1.Eof do begin
AdoDataSet1.Insert;
for i := 0 to ClientDataSet1.FieldCount - 1 do begin
AdoDataSet1.Fields[i].Value := ClientDataSet1.Fields[i].Value;
end;
AdoDataSet1.Post;
ClientDataSet1.Next;
end;
// Save Ado data to file, beware of path used!
AdoDataSet1.SaveToFile(ExtractFilePath(Application.ExeName) + 'AdoData', pfADTG);
finally
AdoDataSet1.EnableControls;
ClientDataSet1.EnableControls;
end;
end;
안녕하세요! StackOverflow에 오신 것을 환영합니다! 시도한 코드와 현재 가지고있는 문제를 제공하여보다 효과적으로 도와 드리겠습니다! 건배! –