![]() |
![]() ![]() ![]() ![]() |
|
Перевести набор данных 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 | ||||