|
Product: Delphi 6.x (or higher) | Category: ADO/OLE-DB | Skill Level:
 | Scoring:  | Last Update: 10/28/2002 | Search Keys: delphi delphi3000 article borland vcl code-snippet XML ADO Export Import DB | Times Scored: 7 | Visits: 7903 | Uploader: Dmitry Lifatov Company: Business Master | Reference: N/A | | | Question/Problem/Abstract:
This unit provide two functions:
function RecordsetToXML(const Recordset: _Recordset): String;
function RecordsetFromXML(const XML: String): _Recordset;
They are very usefull for export/import operations. | Answer:
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.
|
|
|
| |
Sign up to consume product discounts for Bronze memberships !
|
|
| |
Community Ad of Hans Gulö |
|
| |
|
|
|