Hat jemand schon Erfahrungen mit den Delphi6-XML-Features gemacht. Sind sie die X-Tausend-Mark eines Updates (Enterprise-Version) wert?
Announcement
Collapse
No announcement yet.
Delphi 6 + XML
Collapse
X
-
Einerseits möchte ich eigene "Business-Objekte" mit XML-Inhalten verarbeiten können (GetasXML/SetasXML) und hierfür nicht selbst einen Parser schreiben müssen.
Andererseits soll ja (gem. Prospektmaterial) praktisch einen Durchgängigkeit zwischen XML-Objekten und bisherigen Datasets geschaffen worden sein. Dieses Feature tönt sehr interessant, so es denn "vernünftig" implementiert worden ist. Können z.B. einzelne XML-"Records" als Objekte behandelt werden (was ja bei "Dataset-Records" nicht der Fall ist)?
Und dann würde ich gern noch Ihre Meinung zu "MyBase" hören resp. lesen.
Besten Dank
Roland Hein
Comment
-
Hallo,
die beiden folgenden Beispiele zeigen, dass XML bereits auch mit Delphi 5 geht, ohne alles selbst schreiben zu müssen:
<pre>
uses
MSXML2_TLB, // Type Lib: G:\WINNT\System32\msxml3.dll
ADODB_TLB; // Typbib: C:\Programme\Gemeinsame Dateien\System\ADO\msado15.dll
{$R *.DFM}
var
FStart : Integer;
FStop : Integer;
function RecordsetToXML(const aRS: Recordset): String;
var
aXML : IXMLDOMDocument2;
begin
FStart := GetTickCount;
aXML := CoDOMDocument30.Create;
aRS.Save(aXML, adPersistXML);
Result := aXML.xml;
FStop := GetTickCount;
end;
function RecordsetToXML2(const aRS: Recordset): String;
var
aStrm : Stream;
begin
FStart := GetTickCount;
aStrm := CoStream.Create;
aRS.Save (aStrm, adPersistXML);
Result := aStrm.ReadText(aStrm.Size);
aStrm.Close;
FStop := GetTickCount;
end;
procedure TForm1.ButtonXMLClick(Sender: TObject);
begin
MemoXML.Lines.Clear;
MemoXML.Lines.Add(RecordsetToXML(adoquery1.Records et as _Recordset));
StaticTextXML.Caption := Format('%d Windows-Ticks',[FStop - FStart]);
end;
procedure TForm1.ButtonStreamClick(Sender: TObject);
begin
MemoXML.Lines.Clear;
MemoXML.Lines.Add(RecordsetToXML2(adoquery1.Record set as _Recordset));
StaticTextStream.Caption := Format('%d Windows-Ticks',[FStop - FStart]);;
end;
</pre>
Ein ADO-RecordSet (aktive Datenmenge) wird auf 2 unterschiedlichen Wegen in eine XML-Struktur umgewandelt
Comment
Comment