Announcement

Collapse
No announcement yet.

ADO DataSet Struktur aus XMLSchema wiederherstellen

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

  • ADO DataSet Struktur aus XMLSchema wiederherstellen

    Hallo,

    ich habe eine XMLSchema Datei vorliegen, die ein ADODataSet beschreibt und müßte daraus wieder ein ADODataSet bekommen, welches ich in einem Delphi-Programm mit Daten fülle kann. Ich habe schon im MDAC SDK gesucht, kann aber keine Funktion finden, mit deren Hilfe man einem ADODataSet die Strucktur aus einem XMLSchema zuweisen kann. Sehr wahrscheinlich suche ich mal wieder an der falschen Stelle.

    Gruß & Danke

    Sebastian

  • #2
    Hallo,

    das Problem dabei ist, dass an die XML-Struktur gewisse Ansprüche gestellt werden, damit die automatische Konvertierung durch das Recordset-Objekt von ADO greift. Das folgende Beispiel für MDAC 2.6 (oder höher) beschreibt diesen Fall (das Recordset hat seine Daten vorher als XML exportiert).

    <pre>
    function XMLToRecordset (const XML: string): Recordset;
    var
    stm: Stream;
    begin
    Result := CoRecordset.Create;
    Result.CursorLocation := adUseClient;
    stm := CoStream.Create;
    stm.Open (EmptyParam, adModeUnknown,
    StreamOpenOptionsEnum(adOpenStreamUnspecified), '', '');
    stm.WriteText (XML, stWriteChar);
    stm.Position := 0;
    Result.Open (stm, EmptyParam, CursorTypeEnum(adOpenUnspecified),
    LockTypeEnum(adLockUnspecified), 0);
    stm.Close;
    end;
    </pre>

    Ob das im Fall einer reinen XML Schema-Datei (*.xsd) auch so funktioniert, wage ich zu bezweifeln. Aber ein Versuch ist es wert

    Comment


    • #3
      Ich glaube ich habe mich da etwas blöd ausgedrückt. Es ist kein ADO Recordset, sondern ein ADO.NET DataSet. Ein Recordset beschreibt meines Wissens nach immer die Spalten einer Tabelle. Das Schema beschreibt allerdings Auch noch die Relationen unter den Tabellen und die Tabellen selber. Bei einem Beispiele, wie man unter einer .NET Sprache dieses Dataset mit Hilfe der Dieses Beispiel hatte ich bei den Diskussionen zu den WebServices schon gefunden. Ich glaube aber, dass ich mich etwas undeutlich ausgedrückt habe. Es ist kein ADO Recordset, sondern ein ADO.NET DataSet. Ein Recordset beschreibt meines Wissens nach immer die Spalten einer Tabelle. Das Schema beschreibt allerdings Auch noch die Relationen unter den Tabellen sowie die Tabellen selber. Ein Beispiel, wie man unter einer .NET Sprache dieses Dataset mit Hilfe des Schema erzeugt habe ich auch gefunden. Die Frage ist nur, wie mache ich das mit Delphi. Ich habe in den Ausgaben des Entwicklers schon nachgesehen, konnte aber nichts finden, was sich damit auseinander setzt.

      Gruß
      Sebastia

      Comment

      Working...
      X