Программы   Загрузка Партнерство   О компании Контакты  
 
                    
  Карта Сайта   
   





Перевести набор данных ADO в XML и обратно

Автор: http://www.swissdelphicenter.ch

unit ADOXMLUnit;

 interface

 uses
   Classes, ADOInt;

 function RecordsetToXML(const Recordset: _Recordset): string;
 function RecordsetFromXML(const XML: string): _Recordset;

 implementation

 uses
   ComObj;

 { 
  Example: 
  ... 
    Memo1.Lines.Text:=RecordsetToXML(ADOQuery1.Recordset); 
  ... 
}
 function RecordsetToXML(const Recordset: _Recordset): string;
 var
    RS: Variant;
   Stream: TStringStream;
 begin
   Result := '';
   if Recordset = nil then Exit;
   Stream := TStringStream.Create('');
   try
     RS := CreateOleObject('ADODB.Recordset');
     RS := Recordset;
     RS.Save(TStreamAdapter.Create(stream) as IUnknown, adPersistXML);
     Stream.Position := 0;
     Result := Stream.DataString;
   finally
     Stream.Free;
   end;
 end;

 { 
  Example: 
  ... 
    ADOQuery1.Recordset:=RecordsetFromXML(Memo1.Lines.Text); 
  ... 
}

 function RecordsetFromXML(const XML: string): _Recordset;
 var
    RS: Variant;
   Stream: TStringStream;
 begin
   Result := nil;
   if XML = '' then Exit;
   try
     Stream := TStringStream.Create(XML);
     Stream.Position := 0;
     RS := CreateOleObject('ADODB.Recordset');
     RS.Open(TStreamAdapter.Create(Stream) as IUnknown);
     Result := IUnknown(RS) as _Recordset;
   finally
     Stream.Free;
   end;
 end;

 end.
           




Программы  |  Загрузка  |  Партнерство  |  О компании  |  Контакты

Copyright © LSD Software 2006 - 2011