Zweck
Die gespeicherte Prozedur dxxShredXML() ist das Gegenstück zur gespeicherten Prozedur dxxGenXML(). Damit dxxShredXML() funktioniert, müssen alle in der DAD-Datei angegebenen Tabellen vorhanden sein, und alle in der DAD-Datei angegebenen Spalten und ihre Datentypen müssen mit den vorhandenen Tabellen konsistent sein. Die gespeicherte Prozedur dxxShredXML() erfordert keine Primärschlüsselbeziehung zwischen den verknüpften Tabellen, die vom XML Extender beim Aktivieren der Objektgruppe erstellt wird. Die im RDB_node des Root-element_node angegebenen Spalten mit den Verknüpfungsbedingungen müssen jedoch in den Tabellen vorhanden sein.
dxxShredXML(CLOB(100K) DAD, /* Eingabe */ CLOB(1M) xmlobj, /* Eingabe */ long returncode, /* Ausgabe */ varchar(1024) returnMsg) /* Ausgabe */
Parameter
Tabelle 48. Parameter für dxxShredXML()
Parameter | Beschreibung | IN/OUT-Parameter |
---|---|---|
DAD | Ein CLOB mit der DAD-Datei. | IN |
xmlobj | Ein XML-Dokumentobjekt mit dem Typ XMLCLOB. | IN |
returnCode | Der Rückkehrcode von der gespeicherten Prozedur. | OUT |
returnMsg | Der Nachrichtentext, der im Fehlerfall zurückgegeben wird. | OUT |
Beispiele
Das folgende Beispiel zeigt einen Aufruf von dxxShredXML().
#include "dxx.h" #include "dxxrc.h" EXEC SQL INCLUDE SQLCA; EXEC SQL BEGIN DECLARE SECTION; SQL TYPE is CLOB dad; /* DAD*/ SQL TYPE is CLOB_FILE dadFile; /* DAD-Datei */ SQL TYPE is CLOB xmlDoc; /* XML-Eingabedokument */ SQL TYPE is CLOB_FILE xmlFile; /* Eingabe-XMLfile */ long returnCode; /* Fehlercode */ char returnMsg[1024]; /* Fehlernachrichtentext */ short dad_ind; short xmlDoc_ind; short returnCode_ind; short returnMsg_ind; EXEC SQL END DECLARE SECTION; /* Host-Variable und Anzeiger initialisieren */ strcpy(dadFile.name,"c:\dxx\samples\dad\getstart_xcollection.dad"); dadFile.name_length=strlen("c:\dxx\samples\dad\getstart_xcollection.dad"); dadFile.file_option=SQL_FILE_READ; strcpy(xmlFile.name,"c:\dxx\samples\cmd\getstart.xml"); xmlFile.name_length=strlen("c:\dxx\samples\cmd\getstart.xml"); xmlFile.file_option=SQL_FILE_READ; SQL EXEC VALUES (:dadFile) INTO :dad; SQL EXEC VALUES (:xmlFile) INTO :xmlDoc; returnCode = 0; returnMsg[0] = '\0'; dad_ind = 0; xmlDoc_ind = 0; returnCode_ind = -1; returnMsg_ind = -1; /* Gespeicherte Prozedur aufrufen */ EXEC SQL CALL db2xml!dxxShredXML(:dad:dad_ind; :xmlDoc:xmlDoc_ind, :returnCode:returnCode_ind,:returnMsg:returnMsg_ind);