[阅读: 308] 2008-11-29 07:38:08
function RecordSetStr(ds:tadodataset): string;
var
RS: Variant;
Stream: TStringStream;
begin
Result:='';
if ds.RecordSet = nil then Exit;
Stream := TStringStream.Create('');
RS := CreateOleObject('ADODB.Recordset');
try
RS := ds.RecordSet;
RS.Save(TStreamAdapter.Create(stream) as IUnknown, adPersistXML);
Stream.Position := 0;
Result := Stream.DataString;
finally
Stream.Free;
rs:=unassigned;
end;
end;
function RecordsetFromXML(const XML: string): _Recordset;
var
RS: Variant;
Stream: TStringStream;
begin
Result:= nil;
if XML ='' then Exit;
Stream := TStringStream.Create(XML);
try
Stream.Position := 0;
RS := CreateOleObject('ADODB.Recordset');
RS.Open(TStreamAdapter.Create(Stream) as IUnknown);
Result := IUnknown(RS) as _Recordset;
finally
Stream.Free;
rs:=unassigned;
end;
end;