Announcement

Collapse
No announcement yet.

Delphi 6 + XML

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Delphi 6 + XML

    Hat jemand schon Erfahrungen mit den Delphi6-XML-Features gemacht. Sind sie die X-Tausend-Mark eines Updates (Enterprise-Version) wert?

  • #2
    Hallo,

    wozu wird XML benötigt? Wenn es nur darum geht, XML als Transportmedium für Methodenaufrufe (SOAP) zu verwenden oder den Inhalt von Datenbanktabellen als XML zu exportieren oder aus XML einzulesen, reicht Delphi 5 völlig aus

    Comment


    • #3
      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


      • #4
        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

        Working...
        X