Перевести набор данных ADO в XML и обратно
Оформил: DeeCo
Автор: 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 .
Если Вас заинтересовала или понравилась информация по разработке на Delph - "Перевести набор данных ADO в XML и обратно", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:
Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи , в сообщение обязательно указывайте название или ссылку на статью!