![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Перевести набор данных ADO в XML и обратноDelphi , Интернет и Сети , XMLПеревести набор данных ADO в XML и обратно
Оформил: DeeCo 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. Программный модуль на Delphi, который предлагает две функции: Вот подробное описание кода: RecordsetToXML
RecordsetFromXML
Код включает некоторые механизмы обработки ошибок, такие как проверка на null-входные параметры и освобождение ресурсов после их использования. Вот несколько предложений по улучшению кода:
В целом, этот код предоставляет полезную утилиту для конвертации объектов ADO Recordset в XML и обратно. В статье описывается практический пример конвертации набора данных ADO в XML и обратно, для чего используются функции RecordsetToXML и RecordsetFromXML в Delphi. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |