Index: en/reference/ibm_db2/functions/db2-exec.xml
===================================================================
RCS file: /repository/phpdoc/en/reference/ibm_db2/functions/db2-exec.xml,v
retrieving revision 1.7
diff -u -u -r1.7 db2-exec.xml
--- en/reference/ibm_db2/functions/db2-exec.xml	19 Sep 2005 14:31:25 -0000	1.7
+++ en/reference/ibm_db2/functions/db2-exec.xml	3 Oct 2006 01:03:33 -0000
@@ -184,6 +184,180 @@
 ]]>
     </screen>
    </example>
+   <example>
+    <title>Returning XML data as a SQL ResultSet</title>
+    <para>
+    The following example demonstrates how to work with documents stored 
+    in a XML column using the SAMPLE database. Using some pretty simple 
+    SQL/XML, this example returns some of the nodes in a XML document in 
+    a SQL ResultSet format that most users are familiar with.
+    </para>
+    <programlisting role="php">
+<![CDATA[
+<?php
+	
+$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");
+
+$query = 'SELECT * FROM XMLTABLE(
+    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
+    \'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
+    COLUMNS
+    "CID" VARCHAR (50) PATH \'@Cid\',
+    "NAME" VARCHAR (50) PATH \'name\',
+    "PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
+    ) AS T
+    WHERE NAME = \'Kathy Smith\'
+    ';
+$stmt = db2_exec($conn, $query);
+	
+while($row = db2_fetch_object($stmt)){
+    printf("$row->CID     $row->NAME     $row->PHONE\n");
+}
+db2_close($conn);
+
+?>
+]]>
+    </programlisting>
+    &example.outputs;
+    <screen>
+<![CDATA[
+1000     Kathy Smith     416-555-1358
+1001     Kathy Smith     905-555-7258
+]]>
+    </screen>
+   </example>
+   <example>
+    <title>Performing a "JOIN" with XML data</title>
+    <para>
+    The following example works with documents stored in 2 differnt 
+    XML columns in the SAMPLE database. It creates 2 temporary 
+    tables from the XML documents from 2 different columns and 
+    returns a SQL ResultSet with information regarding shipping 
+    status for the customer.
+    </para>
+    <programlisting role="php">
+<![CDATA[
+<?php
+	
+$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");
+	
+$query = '
+    SELECT A.CID, A.NAME, A.PHONE, C.PONUM, C.STATUS
+    FROM
+    XMLTABLE(
+    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
+    \'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
+    COLUMNS
+    "CID" BIGINT PATH \'@Cid\',
+    "NAME" VARCHAR (50) PATH \'name\',
+    "PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
+    ) as A,
+    PURCHASEORDER AS B,
+    XMLTABLE (
+    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
+    \'db2-fn:xmlcolumn("PURCHASEORDER.PORDER")/PurchaseOrder\'
+    COLUMNS
+    "PONUM"  BIGINT PATH \'@PoNum\',
+    "STATUS" VARCHAR (50) PATH \'@Status\'
+    ) as C
+    WHERE A.CID = B.CUSTID AND
+	B.POID = C.PONUM AND
+	A.NAME = \'Kathy Smith\'
+';
+	
+$stmt = db2_exec($conn, $query);
+	
+while($row = db2_fetch_object($stmt)){
+    printf("$row->CID     $row->NAME     $row->PHONE     $row->PONUM     $row->STATUS\n");
+}
+	
+db2_close($conn);
+
+?>
+]]>
+    </programlisting>
+    &example.outputs;
+    <screen>
+<![CDATA[
+1001     Kathy Smith     905-555-7258     5002     Shipped
+]]>
+    </screen>
+   </example>
+   <example>
+    <title>Returning SQL data as part of a larger XML document</title>
+    <para>
+    The following example works with a portion of the PRODUCT.DESCRIPTION 
+    documents in the SAMPLE database. It creates a XML document containing 
+    product description (XML data) and pricing info (SQL data).
+    </para>
+    <programlisting role="php">
+<![CDATA[
+<?php
+
+$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");
+
+$query = '
+SELECT
+XMLSERIALIZE(
+XMLQUERY(\'
+    declare boundary-space strip;
+    declare default element namespace "http://posample.org";
+    <promoList> {
+	for $prod in $doc/product
+	where $prod/description/price < 10.00
+	order by $prod/description/price ascending
+	return(
+	    <promoitem> {
+		$prod,
+		<startdate> {$start} </startdate>,
+		<enddate> {$end} </enddate>,
+		<promoprice> {$promo} </promoprice>
+	    } </promoitem>
+	)
+    } </promoList>
+\' passing by ref DESCRIPTION AS "doc",
+PROMOSTART as "start",
+PROMOEND as "end",
+PROMOPRICE as "promo"
+RETURNING SEQUENCE)
+AS CLOB (32000))
+AS NEW_PRODUCT_INFO
+FROM PRODUCT
+WHERE PID = \'100-100-01\'
+';
+
+$stmt = db2_exec($conn, $query);
+
+while($row = db2_fetch_array($stmt)){
+	printf("$row[0]\n");
+}
+db2_close($conn);
+
+?>
+?>
+]]>
+    </programlisting>
+    &example.outputs;
+    <screen>
+<![CDATA[
+<promoList xmlns="http://posample.org">
+    <promoitem>
+    <product pid="100-100-01">
+        <description>
+            <name>Snow Shovel, Basic 22 inch</name>
+            <details>Basic Snow Shovel, 22 inches wide, straight handle with D-Grip</details>
+            <price>9.99</price>
+            <weight>1 kg</weight>
+        </description>
+    </product>
+    <startdate>2004-11-19</startdate>
+    <enddate>2004-12-19</enddate>
+    <promoprice>7.25</promoprice>
+    </promoitem>
+</promoList>
+]]>
+    </screen>
+   </example>
   </para>
  </refsect1>
 
Index: en/reference/ibm_db2/functions/db2-execute.xml
===================================================================
RCS file: /repository/phpdoc/en/reference/ibm_db2/functions/db2-execute.xml,v
retrieving revision 1.6
diff -u -u -r1.6 db2-execute.xml
--- en/reference/ibm_db2/functions/db2-execute.xml	12 Jul 2005 17:39:24 -0000	1.6
+++ en/reference/ibm_db2/functions/db2-execute.xml	3 Oct 2006 01:03:33 -0000
@@ -135,8 +135,202 @@
 ]]>
     </screen>
    </example>
-
-
+   <example>
+    <title>Returning XML data as a SQL ResultSet</title>
+    <para>
+    The following example demonstrates how to work with documents stored 
+    in a XML column using the SAMPLE database. Using some pretty simple 
+    SQL/XML, this example returns some of the nodes in a XML document in 
+    a SQL ResultSet format that most users are familiar with.
+    </para>
+    <programlisting role="php">
+<![CDATA[
+<?php
+	
+$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");
+	
+$query = 'SELECT * FROM XMLTABLE(
+    XMLNAMESPACES (DEFAULT \'http://posample.org\'),
+    \'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
+    COLUMNS
+    "CID" VARCHAR (50) PATH \'@Cid\',
+    "NAME" VARCHAR (50) PATH \'name\',
+    "PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
+    ) AS T
+    WHERE NAME = ?
+    ';
+
+$stmt = db2_prepare($conn, $query);
+	
+$name = 'Kathy Smith';
+
+if ($stmt) {
+    db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
+    db2_execute($stmt);
+	
+    while($row = db2_fetch_object($stmt)){
+	printf("$row->CID     $row->NAME     $row->PHONE\n");
+    }
+}
+db2_close($conn);
+
+?>
+]]>
+    </programlisting>
+    &example.outputs;
+    <screen>
+<![CDATA[
+1000     Kathy Smith     416-555-1358
+1001     Kathy Smith     905-555-7258
+]]>
+    </screen>
+   </example>
+   <example>
+    <title>Performing a "JOIN" with XML data</title>
+    <para>
+    The following example works with documents stored in 2 differnt 
+    XML columns in the SAMPLE database. It creates 2 temporary 
+    tables from the XML documents from 2 different columns and 
+    returns a SQL ResultSet with information regarding shipping 
+    status for the customer.
+    </para>
+    <programlisting role="php">
+<![CDATA[
+<?php
+
+$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");
+
+$query = '
+SELECT A.CID, A.NAME, A.PHONE, C.PONUM, C.STATUS
+FROM
+XMLTABLE(
+XMLNAMESPACES (DEFAULT \'http://posample.org\'),
+\'db2-fn:xmlcolumn("CUSTOMER.INFO")/customerinfo\'
+COLUMNS
+"CID" BIGINT PATH \'@Cid\',
+"NAME" VARCHAR (50) PATH \'name\',
+"PHONE" VARCHAR (50) PATH \'phone [ @type = "work"]\'
+) as A,
+PURCHASEORDER AS B,
+XMLTABLE (
+XMLNAMESPACES (DEFAULT \'http://posample.org\'),
+\'db2-fn:xmlcolumn("PURCHASEORDER.PORDER")/PurchaseOrder\'
+COLUMNS
+"PONUM"  BIGINT PATH \'@PoNum\',
+"STATUS" VARCHAR (50) PATH \'@Status\'
+) as C
+WHERE A.CID = B.CUSTID AND
+	B.POID = C.PONUM AND
+	A.NAME = ?
+';
+
+$stmt = db2_prepare($conn, $query);
+
+$name = 'Kathy Smith';
+
+if ($stmt) {
+    db2_bind_param($stmt, 1, "name", DB2_PARAM_IN);
+    db2_execute($stmt);
+	
+    while($row = db2_fetch_object($stmt)){
+	printf("$row->CID     $row->NAME     $row->PHONE     $row->PONUM     $row->STATUS\n");
+    }
+}
+
+db2_close($conn);
+
+?>
+]]>
+    </programlisting>
+    &example.outputs;
+    <screen>
+<![CDATA[
+1001     Kathy Smith     905-555-7258     5002     Shipped
+]]>
+    </screen>
+   </example>
+   <example>
+    <title>Returning SQL data as part of a larger XML document</title>
+    <para>
+    The following example works with a portion of the PRODUCT.DESCRIPTION 
+    documents in the SAMPLE database. It creates a XML document containing 
+    product description (XML data) and pricing info (SQL data).
+    </para>
+    <programlisting role="php">
+<![CDATA[
+<?php
+
+$conn = db2_connect("SAMPLE", "db2inst1", "ibmdb2");
+
+$query = '
+SELECT
+XMLSERIALIZE(
+XMLQUERY(\'
+    declare boundary-space strip;
+    declare default element namespace "http://posample.org";
+    <promoList> {
+	for $prod in $doc/product
+	where $prod/description/price < 10.00
+	order by $prod/description/price ascending
+	return(
+	    <promoitem> {
+		$prod,
+		<startdate> {$start} </startdate>,
+		<enddate> {$end} </enddate>,
+ 		<promoprice> {$promo} </promoprice>
+            } </promoitem>
+	)
+    } </promoList>
+\' passing by ref DESCRIPTION AS "doc",
+PROMOSTART as "start",
+PROMOEND as "end",
+PROMOPRICE as "promo"
+RETURNING SEQUENCE)
+AS CLOB (32000))
+AS NEW_PRODUCT_INFO
+FROM PRODUCT
+WHERE PID = ?
+';
+
+$stmt = db2_prepare($conn, $query);
+
+$pid = "100-100-01";
+
+if ($stmt) {
+    db2_bind_param($stmt, 1, "pid", DB2_PARAM_IN);
+    db2_execute($stmt);
+	
+    while($row = db2_fetch_array($stmt)){
+	printf("$row[0]\n");
+    }
+}
+
+db2_close($conn);
+
+?>
+]]>
+    </programlisting>
+    &example.outputs;
+    <screen>
+<![CDATA[
+<promoList xmlns="http://posample.org">
+    <promoitem>
+    <product pid="100-100-01">
+        <description>
+            <name>Snow Shovel, Basic 22 inch</name>
+            <details>Basic Snow Shovel, 22 inches wide, straight handle with D-Grip</details>
+            <price>9.99</price>
+            <weight>1 kg</weight>
+        </description>
+    </product>
+    <startdate>2004-11-19</startdate>
+    <enddate>2004-12-19</enddate>
+    <promoprice>7.25</promoprice>
+    </promoitem>
+</promoList>
+]]>
+    </screen>
+   </example>
   </para>
  </refsect1>
