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

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

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 © 2023 - All Rights Reserved - www.delphirus.com