www.krengeltech.com

DB2WSE Examples

From Wiki

User Guide

Contents

SQL / XML Examples

Example 1: simple SELECT statement

Request

<DB2WSEREQ>
  <STATEMENT>
    select * from PETSTORE/ORDERS
  </STATEMENT> 
  <USER>DEMO</USER>
  <PASSWORD>DEMO</PASSWORD>
</DB2WSEREQ>

or, in REST format

http://red.rpg-xml.com/db2wse/demo:demo/petstore/orders

Response

<DB2WSERSP>
  <HEADER>
    <DB2WSEREQ>
      <STATEMENT>
        select * from PETSTORE/ORDERS
      </STATEMENT>
    </DB2WSEREQ>
    <RETURNEDROWS>1</RETURNEDROWS>
    <MOREROWS>NO</MOREROWS>
  </HEADER>
  <ROW ROWNBR="1">
    <ORDERID>1</ORDERID>
    <USERID>ACID</USERID>
    <ORDERDATE>2009-02-01</ORDERDATE>
    <SHIPADDR1>1st St</SHIPADDR1>
    <SHIPADDR2 />
    <SHIPCITY>York</SHIPCITY>
    <SHIPSTATE>PA</SHIPSTATE>
    <SHIPZIP>17404</SHIPZIP>
    <SHIPCOUNTRY>USA</SHIPCOUNTRY>
    <BILLADDR1>1st St</BILLADDR1>
    <BILLADDR2 />
    <BILLCITY>York</BILLCITY>
    <BILLSTATE>PA</BILLSTATE>
    <BILLZIP>17404</BILLZIP>
    <BILLCOUNTRY>USA</BILLCOUNTRY>
    <COURIER>FED-EX</COURIER>
    <TOTALPRICE>1,093.43</TOTALPRICE>
    <BILLTOFIRSTNAME>Dave</BILLTOFIRSTNAME>
    <BILLTOLASTNAME>Smith</BILLTOLASTNAME>
    <SHIPTOFIRSTNAME>Dave</SHIPTOFIRSTNAME>
    <SHIPTOLASTNAME>Smith</SHIPTOLASTNAME>
    <CREDITCARD>123456789</CREDITCARD>
    <EXPRDATE>201201</EXPRDATE>
    <CARDTYPE>VISA</CARDTYPE>
    <LOCALE>US</LOCALE>
  </ROW>
</DB2WSERSP>

Example 2: complex SELECT statement

Request

<DB2WSEREQ>
  <STATEMENT>
    select * from petstore/product where category = 'FISH'
  </STATEMENT>
  <USER>DEMO</USER>
  <PASSWORD>DEMO</PASSWORD>
</DB2WSEREQ>

Response

<DB2WSERSP>
  <HEADER>
    <DB2WSEREQ>
      <STATEMENT>
        select * from petstore/product where category = 'FISH'
      </STATEMENT>
    </DB2WSEREQ>
    <RETURNEDROWS>4</RETURNEDROWS>
    <MOREROWS>NO</MOREROWS>
  </HEADER>
  <ROW ROWNBR="1">
    <PRODUCTID>FI-SW-01</PRODUCTID>
    <CATEGORY>FISH</CATEGORY>
    <NAME>Angelfish</NAME>
    <DESCN>Salt Water fish from Australia</DESCN>
  </ROW>
  <ROW ROWNBR="2">
    <PRODUCTID>FI-SW-02</PRODUCTID>
    <CATEGORY>FISH</CATEGORY>
    <NAME>Tiger Shark</NAME>
    <DESCN>Salt Water fish from Australia</DESCN>
  </ROW>
  <ROW ROWNBR="3">
    <PRODUCTID>FI-FW-01</PRODUCTID>
    <CATEGORY>FISH</CATEGORY>
    <NAME>Koi</NAME>
    <DESCN>Fresh Water fish from Japan</DESCN>
  </ROW>
  <ROW ROWNBR="4">
    <PRODUCTID>FI-FW-02</PRODUCTID>
    <CATEGORY>FISH</CATEGORY>
    <NAME>Goldfish</NAME>
    <DESCN>Fresh Water fish from China</DESCN>
  </ROW>
</DB2WSERSP>

Example 3 - simple SELECT statement using FIRSTROW and FORROWS attributes

Request

<DB2WSEREQ>
  <STATEMENT FIRSTROW="3" FORROWS="2">
    select itemid, status from petstore/item
  </STATEMENT>
  <USER>DEMO</USER>
  <PASSWORD>DEMO</PASSWORD>
</DB2WSEREQ>

Response

<DB2WSERSP>
  <HEADER>
    <DB2WSEREQ>
      <STATEMENT FIRSTROW="3" FORROWS="2">
        select itemid, status from petstore/item
      </STATEMENT>
    </DB2WSEREQ>
    <RETURNEDROWS>2</RETURNEDROWS>
    <MOREROWS>YES</MOREROWS>
  </HEADER>
  <ROW ROWNBR="3">
    <ITEMID>EST-3</ITEMID>
    <STATUS>P</STATUS>
  </ROW>
  <ROW ROWNBR="4">
    <ITEMID>EST-4</ITEMID>
    <STATUS>P</STATUS>
  </ROW>
</DB2WSERSP>

Example 4 - complex SELECT statement using Inner Join

Request

<DB2WSEREQ>
  <STATEMENT>
    select o.orderid, o.userid, o.orderdate, o.totalprice, o.billtolastname, 
           i.linenum, i.itemid, i.quantity, i.unitprice
        from petstore/orders o, petstore/lineitem i where o.orderid = i.orderid
  </STATEMENT>
  <USER>DEMO</USER>
  <PASSWORD>DEMO</PASSWORD>
</DB2WSEREQ>

Response

<DB2WSERSP>
  <HEADER>
    <DB2WSEREQ>
      <STATEMENT>
        select o.orderid, o.userid, o.orderdate, o.totalprice, o.billtolastname, i.linenum, 
               i.itemid, i.quantity, i.unitprice
            from petstore/orders o, petstore/lineitem i where o.orderid = i.orderid
      </STATEMENT>
    </DB2WSEREQ>
    <RETURNEDROWS>2</RETURNEDROWS>
    <MOREROWS>NO</MOREROWS>
  </HEADER>
  <ROW ROWNBR="1">
    <ORDERID>73</ORDERID>
    <USERID>ACID</USERID>
    <ORDERDATE>02/01/09</ORDERDATE>
    <TOTALPRICE>1093.43</TOTALPRICE>
    <BILLTOLASTNAME>Smith</BILLTOLASTNAME>
    <LINENUM>1</LINENUM>
    <ITEMID>EST-1</ITEMID>
    <QUANTITY>2</QUANTITY>
    <UNITPRICE>9.45</UNITPRICE>
  </ROW>
  <ROW ROWNBR="2">
    <ORDERID>73</ORDERID>
    <USERID>ACID</USERID>
    <ORDERDATE>02/01/09</ORDERDATE>
    <TOTALPRICE>1093.43</TOTALPRICE>
    <BILLTOLASTNAME>Smith</BILLTOLASTNAME>
    <LINENUM>2</LINENUM>
    <ITEMID>EST-8</ITEMID>
    <QUANTITY>2</QUANTITY>
    <UNITPRICE>11.23</UNITPRICE>
  </ROW>
</DB2WSERSP>

Example 5 - simple SELECT statement using FULL response type

Request

<DB2WSEREQ>
  <STATEMENT RSPTYPE="full">
    select * from petstore/lineitem
  </STATEMENT>
  <USER>DEMO</USER>
  <PASSWORD>DEMO</PASSWORD>
</DB2WSEREQ>

Response

<DB2WSERSP>
  <HEADER>
    <DB2WSEREQ>
      <STATEMENT RSPTYPE="full">
        select * from petstore/lineitem
      </STATEMENT>
    </DB2WSEREQ>
    <RETURNEDROWS>2</RETURNEDROWS>
    <MOREROWS>NO</MOREROWS>
  </HEADER>
  <COLDEFS>
    <COLDEF COLSEQ="1" COLNAME="ORDERID" COLTEXT="Order identifier" COLTYPE="Large integer" COLLENGTH="4" />
    <COLDEF COLSEQ="2" COLNAME="LINENUM" COLTEXT="Line number" COLTYPE="Large integer" COLLENGTH="4" />
    <COLDEF COLSEQ="3" COLNAME="ITEMID" COLTEXT="Item identifier" COLTYPE="Varying character" COLLENGTH="10" />
    <COLDEF COLSEQ="4" COLNAME="QUANTITY" COLTEXT="Quantity" COLTYPE="Large integer" COLLENGTH="4" />
    <COLDEF COLSEQ="5" COLNAME="UNITPRICE" COLTEXT="Unit price" COLTYPE="Packed decimal" COLLENGTH="10" COLDECPOS="2" />
  </COLDEFS>
  <ROW ROWNBR="1">
    <C1>1</C1>
    <C2>1</C2>
    <C3>EST-1</C3>
    <C4>2</C4>
    <C5>9.45</C5>
  </ROW>
  <ROW ROWNBR="2">
    <C1>1</C1>
    <C2>2</C2>
    <C3>EST-8</C3>
    <C4>7</C4>
    <C5>11.23</C5>
  </ROW>
</DB2WSERSP>

Example 6 - DELETE statement

Request

<DB2WSEREQ>
  <STATEMENT>
    delete from petstore/item where category = 'REPTILE'
  </STATEMENT>
  <USER>DEMO</USER>
  <PASSWORD>DEMO</PASSWORD>
</DB2WSEREQ>

Response

<DB2WSERSP>
  <HEADER>
    <DB2WSEREQ>
      <STATEMENT>
        delete from petstore/item where category = 'REPTILE'
      </STATEMENT>
    </DB2WSEREQ>
  </HEADER>
  <RSPCODE>
    2
  </RSPCODE>
  <RSPTEXT>
    2 rows deleted from PETSTORE/ITEM
  </RSPTEXT>
</DB2WSERSP>

Example 7 - INSERT statement

Request

<DB2WSEREQ>
  <STATEMENT>
    insert into petstore/product 
      values('RP-LI-03', 'REPTILES', 'Gecko', '<image src="../images/lizard3.gif">Cool green lizard')
  </STATEMENT>
  <USER>DEMO</USER>
  <PASSWORD>DEMO</PASSWORD>
</DB2WSEREQ>

Response

<DB2WSERSP>
  <HEADER>
    <DB2WSEREQ>
      <STATEMENT>
        insert into petstore/product 
          values('RP-LI-03', 'REPTILES', 'Gecko', '<image src="../images/lizard3.gif">Cool green lizard')
      </STATEMENT>
    </DB2WSEREQ>
  </HEADER>
  <RSPCODE>
    1
  </RSPCODE>
  <RSPTEXT>
    1 row inserted into PETSTORE/PRODUCT
  </RSPTEXT>
</DB2WSERSP>

Example 8 - UPDATE statement

Request

<DB2WSEREQ>
  <STATEMENT>
    update petstore/item set attr2 = 'INVALID' where attr2 is null
  </STATEMENT>
  <USER>DEMO</USER>
  <PASSWORD>DEMO</PASSWORD>
</DB2WSEREQ>

Response

<DB2WSERSP>
  <HEADER>
    <DB2WSEREQ>
      <STATEMENT>
        update petstore/item set attr2 = 'INVALID' where attr2 is null
      </STATEMENT>
    </DB2WSEREQ>
  </HEADER>
  <RSPCODE>
    28
  </RSPCODE>
  <RSPTEXT>
    28 rows updated in PETSTORE/ITEM
  </RSPTEXT>
</DB2WSERSP>

Java Examples

Example 1

Java Source Code

/*
 * This example program is meant to show a very simple usage of DB2WSE so that a Java
 * programmer can be up and running quickly without a lot of environment setup.  Simply
 * load this program into your IDE of choice (i.e. Eclipse) and invoke the Java program.
 */
 
package com.krengeltech.db2wse.example;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
 
public class Example1 {
 
    public static void main(String[] args) {
 
        // The server red.rpg-xml.com is KrengelTech's. Change this value
        // to communicate with DB2WSE on your IBM i.
        String db2wseURL = "http://red.rpg-xml.com/db2wse/";
 
        // Simple SQL SELECT statement
        String xmlReq = "<DB2WSEREQ><STATEMENT>select * from QIWS/QCUSTCDT</STATEMENT><USER>demo</USER><PASSWORD>demo</PASSWORD></DB2WSEREQ>";
 
        execURL(db2wseURL, xmlReq);
    }
 
    static void execURL(String urlString, String postContent) {
 
        try {
            // Create the HTTP connection
            URL url = new URL(urlString);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setDoOutput(true);
            conn.setDoInput(true);
            conn.setRequestMethod("POST");
 
            // Write the XML request to the OutputStream
            OutputStream outStream = conn.getOutputStream();
            outStream.write(postContent.getBytes());
            outStream.close();
 
            // Convert the response InputStream to a string and write it to the console.
            System.out.println(streamToString(conn.getInputStream()));
        } catch (Exception e) {
            System.out.println(e);
        }
    }
 
    // "Ease of use" method that will convert an InputStream to a string.
    static String streamToString(InputStream is) {
        BufferedReader reader = new BufferedReader(new InputStreamReader(is));
        StringBuilder sb = new StringBuilder();
        String line = null;
 
        try {
            while ((line = reader.readLine()) != null) {
                sb.append(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                is.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return sb.toString();
    }
}

Console Response

<DB2WSERSP>
  <HEADER>
    <DB2WSEREQ>
      <STATEMENT>select * from QIWS/QCUSTCDT</STATEMENT>
    </DB2WSEREQ>
    <RETURNEDROWS>12</RETURNEDROWS>
    <MOREROWS>NO</MOREROWS>
  </HEADER>
  <ROW ROWNBR="1">
    <CUSNUM>938472</CUSNUM>
    <LSTNAM>Henning</LSTNAM>
    <INIT>G K</INIT>
    <STREET>4859 Elm Ave</STREET>
    <CITY>Dallas</CITY>
    <STATE>TX</STATE>
    <ZIPCOD>75217</ZIPCOD>
    <CDTLMT>5000</CDTLMT>
    <CHGCOD>3</CHGCOD>
    <BALDUE>37.00</BALDUE>
    <CDTDUE></CDTDUE>
  </ROW>
  <ROW ROWNBR="2">
    <CUSNUM>839283</CUSNUM>
    <LSTNAM>Jones</LSTNAM>
    <INIT>B D</INIT>
    <STREET>21B NW 135 St</STREET>
    <CITY>Clay</CITY>
    <STATE>NY</STATE>
    <ZIPCOD>13041</ZIPCOD>
    <CDTLMT>400</CDTLMT>
    <CHGCOD>1</CHGCOD>
    <BALDUE>100.00</BALDUE>
    <CDTDUE></CDTDUE>
  </ROW>
  <ROW ROWNBR="3">
    <CUSNUM>392859</CUSNUM>
    <LSTNAM>Vine</LSTNAM>
    <INIT>S S</INIT>
    <STREET>PO Box 79</STREET>
    <CITY>Broton</CITY>
    <STATE>VT</STATE>
    <ZIPCOD>5046</ZIPCOD>
    <CDTLMT>700</CDTLMT>
    <CHGCOD>1</CHGCOD>
    <BALDUE>439.00</BALDUE>
    <CDTDUE></CDTDUE>
  </ROW>
  <ROW ROWNBR="4">
    <CUSNUM>938485</CUSNUM>
    <LSTNAM>Johnson</LSTNAM>
    <INIT>J A</INIT>
    <STREET>3 Alpine Way</STREET>
    <CITY>Helen</CITY>
    <STATE>GA</STATE>
    <ZIPCOD>30545</ZIPCOD>
    <CDTLMT>9999</CDTLMT>
    <CHGCOD>2</CHGCOD>
    <BALDUE>3,987.50</BALDUE>
    <CDTDUE>33.50</CDTDUE>
  </ROW>
  <ROW ROWNBR="5">
    <CUSNUM>397267</CUSNUM>
    <LSTNAM>Tyron</LSTNAM>
    <INIT>W E</INIT>
    <STREET>13 Myrtle Dr</STREET>
    <CITY>Hector</CITY>
    <STATE>NY</STATE>
    <ZIPCOD>14841</ZIPCOD>
    <CDTLMT>1000</CDTLMT>
    <CHGCOD>1</CHGCOD>
    <BALDUE></BALDUE>
    <CDTDUE></CDTDUE>
  </ROW>
  <ROW ROWNBR="6">
    <CUSNUM>389572</CUSNUM>
    <LSTNAM>Stevens</LSTNAM>
    <INIT>K L</INIT>
    <STREET>208 Snow Pass</STREET>
    <CITY>Denver</CITY>
    <STATE>CO</STATE>
    <ZIPCOD>80226</ZIPCOD>
    <CDTLMT>400</CDTLMT>
    <CHGCOD>1</CHGCOD>
    <BALDUE>58.75</BALDUE>
    <CDTDUE>1.50</CDTDUE>
  </ROW>
  <ROW ROWNBR="7">
    <CUSNUM>846283</CUSNUM>
    <LSTNAM>Alison</LSTNAM>
    <INIT>J S</INIT>
    <STREET>787 Lake Dr</STREET>
    <CITY>Isle</CITY>
    <STATE>MN</STATE>
    <ZIPCOD>56342</ZIPCOD>
    <CDTLMT>5000</CDTLMT>
    <CHGCOD>3</CHGCOD>
    <BALDUE>10.00</BALDUE>
    <CDTDUE></CDTDUE>
  </ROW>
  <ROW ROWNBR="8">
    <CUSNUM>475938</CUSNUM>
    <LSTNAM>Doe</LSTNAM>
    <INIT>J W</INIT>
    <STREET>59 Archer Rd</STREET>
    <CITY>Sutter</CITY>
    <STATE>CA</STATE>
    <ZIPCOD>95685</ZIPCOD>
    <CDTLMT>700</CDTLMT>
    <CHGCOD>2</CHGCOD>
    <BALDUE>250.00</BALDUE>
    <CDTDUE>100.00</CDTDUE>
  </ROW>
  <ROW ROWNBR="9">
    <CUSNUM>693829</CUSNUM>
    <LSTNAM>Thomas</LSTNAM>
    <INIT>A N</INIT>
    <STREET>3 Dove Circle</STREET>
    <CITY>Casper</CITY>
    <STATE>WY</STATE>
    <ZIPCOD>82609</ZIPCOD>
    <CDTLMT>9999</CDTLMT>
    <CHGCOD>2</CHGCOD>
    <BALDUE></BALDUE>
    <CDTDUE></CDTDUE>
  </ROW>
  <ROW ROWNBR="10">
    <CUSNUM>593029</CUSNUM>
    <LSTNAM>Williams</LSTNAM>
    <INIT>E D</INIT>
    <STREET>485 SE 2 Ave</STREET>
    <CITY>Dallas</CITY>
    <STATE>TX</STATE>
    <ZIPCOD>75218</ZIPCOD>
    <CDTLMT>200</CDTLMT>
    <CHGCOD>1</CHGCOD>
    <BALDUE>25.00</BALDUE>
    <CDTDUE></CDTDUE>
  </ROW>
  <ROW ROWNBR="11">
    <CUSNUM>192837</CUSNUM>
    <LSTNAM>Lee</LSTNAM>
    <INIT>F L</INIT>
    <STREET>5963 Oak St</STREET>
    <CITY>Hector</CITY>
    <STATE>NY</STATE>
    <ZIPCOD>14841</ZIPCOD>
    <CDTLMT>700</CDTLMT>
    <CHGCOD>2</CHGCOD>
    <BALDUE>489.50</BALDUE>
    <CDTDUE>.50</CDTDUE>
  </ROW>
  <ROW ROWNBR="12">
    <CUSNUM>583990</CUSNUM>
    <LSTNAM>Abraham</LSTNAM>
    <INIT>M T</INIT>
    <STREET>392 Mill St</STREET>
    <CITY>Isle</CITY>
    <STATE>MN</STATE>
    <ZIPCOD>56342</ZIPCOD>
    <CDTLMT>9999</CDTLMT>
    <CHGCOD>3</CHGCOD>
    <BALDUE>500.00</BALDUE>
    <CDTDUE></CDTDUE>
  </ROW>
</DB2WSERSP>

Example 2

Java Source Code

/*
 * Copyright Krengel Technology Inc. 2009
 * 
 * This example program is meant to show how to make use of some supporting classes 
 * Krengel Tech created to facilitate the ease of use in communicating with the 
 * DB2 Web Service Enabler.
 */
package com.krengeltech.db2wse.example;
 
import com.krengeltech.db2wse.DB2WSE;
import com.krengeltech.db2wse.DB2WSEError;
import com.krengeltech.db2wse.DB2WSERow;
import com.krengeltech.db2wse.DB2WSEReq;
import com.krengeltech.db2wse.DB2WSERsp;
 
public class Example2 {
 
	public static void main(String[] args) {
 
		// Populate the request object with necessary information
		DB2WSEReq req = new DB2WSEReq();
		req.setUrl("http://red.rpg-xml.com/db2wse/");
		req.setUser("demo");
		req.setPassword("demo");
		req.setSqlStatement("select * from QIWS/QCUSTCDT");
 
		try {
			// Send the DB request up to the server and receive the response back.
			DB2WSERsp rsp = DB2WSE.execute(req); 
 
			// Iterate through the results and write the customer number and last name
			// out to the console.
			int count = rsp.getReturnedRows();
			for(int x=0; x < count; x++){
				DB2WSERow row = rsp.getRow(x);
				System.out.println(row.getColValue("LSTNAM") + "(" + row.getColValue("CUSNUM") + ")");
				System.out.println(row.getColValue("STREET") +"\n"+ row.getColValue("CITY") +","+ row.getColValue("STATE") +","+ row.getColValue("ZIPCOD"));
				System.out.println();
			}
		} catch (DB2WSEError e) {
			e.printStackTrace();
		}		
	}
}

Console Response

//
// Example of output
//
 
//	Henning(938472)
//	4859 Elm Ave
//	Dallas,TX,75217
//	
//	Jones(839283)
//	21B NW 135 St
//	Clay,NY,13041
//	
//	Vine(392859)
//	PO Box 79
//	Broton,VT,5046
//	
//	Johnson(938485)
//	3 Alpine Way
//	Helen,GA,30545
//	
//	Tyron(397267)
//	13 Myrtle Dr
//	Hector,NY,14841
//	
//	Stevens(389572)
//	208 Snow Pass
//	Denver,CO,80226
//	
//	Alison(846283)
//	787 Lake Dr
//	Isle,MN,56342
//	
//	Doe(475938)
//	59 Archer Rd
//	Sutter,CA,95685
//	
//	Thomas(693829)
//	3 Dove Circle
//	Casper,WY,82609
//	
//	Williams(593029)
//	485 SE 2 Ave
//	Dallas,TX,75218
//	
//	Lee(192837)
//	5963 Oak St
//	Hector,NY,14841
//	
//	Abraham(583990)
//	392 Mill St
//	Isle,MN,56342

Example 3

Java Source Code

/*
 * Copyright Krengel Technology Inc. 2009
 * 
 * This example program is meant to show how to make use of some supporting classes 
 * Krengel Tech created to facilitate the ease of use in communicating with the 
 * DB2 Web Service Enabler.  In particular this program shows how to retrieve a table
 * definition.
 */
package com.krengeltech.db2wse.example;
 
import com.krengeltech.db2wse.DB2WSE;
import com.krengeltech.db2wse.DB2WSEColDef;
import com.krengeltech.db2wse.DB2WSEError;
import com.krengeltech.db2wse.DB2WSEReq;
import com.krengeltech.db2wse.DB2WSERsp;
 
public class Example3 {
 
	public static void main(String[] args) {
 
		// Populate the request object with necessary information
		DB2WSEReq req = new DB2WSEReq();
		req.setUrl("http://red.rpg-xml.com/db2wse/");
		req.setUser("demo");
		req.setPassword("demo");
		req.setRspType(DB2WSEReq.RSPTYP_COLDEFS);
		req.setSqlStatement("select * from QIWS/QCUSTCDT");
 
		// Send the DB request up to the server and receive the response back.
		DB2WSERsp rsp = null;
		try {
			rsp = DB2WSE.execute(req);
 
			// Iterate through the column definition results and write them out to the console.
			int count = rsp.getColDefCount();
			for (int x = 0; x < count; x++) {
				DB2WSEColDef cd = rsp.getColDef(x);
				System.out.println(cd.getSeq() + " - " + cd.getName() + " (" + cd.getText() + ")");
				System.out.println(cd.getType() + " (" + cd.getLength() + "," + cd.getDecpos() + ")");
				System.out.println();
			}
		} catch (DB2WSEError e) {
			e.printStackTrace();
		}
	}
}

Console Response

//
// Example of output
//
 
//	1 - CUSNUM (Customer number field)
//	Zoned decimal (6,0)
//	
//	2 - LSTNAM (Last name field)
//	Fixed character (8,0)
//	
//	3 - INIT (First and middle initial field)
//	Fixed character (3,0)
//	
//	4 - STREET (Street address field)
//	Fixed character (13,0)
//	
//	5 - CITY (City field)
//	Fixed character (6,0)
//	
//	6 - STATE (State abbreviation field)
//	Fixed character (2,0)
//	
//	7 - ZIPCOD (Zip code field)
//	Zoned decimal (5,0)
//	
//	8 - CDTLMT (Credit limit field)
//	Zoned decimal (4,0)
//	
//	9 - CHGCOD (Charge code field)
//	Zoned decimal (1,0)
//	
//	10 - BALDUE (Balance due field)
//	Zoned decimal (6,2)
//	
//	11 - CDTDUE (Credit due field)
//	Zoned decimal (6,2)

Example 4

Java Source Code

/*
 * Copyright Krengel Technology Inc. 2009
 * 
 * This example program is meant to show how to make use of some supporting classes 
 * Krengel Tech created to facilitate the ease of use in communicating with the 
 * DB2 Web Service Enabler. In particular this one shows how to check for errors
 * after sending an SQL request to the server.
 */
package com.krengeltech.db2wse.example;
 
import com.krengeltech.db2wse.DB2WSE;
import com.krengeltech.db2wse.DB2WSEError;
import com.krengeltech.db2wse.DB2WSEReq;
import com.krengeltech.db2wse.DB2WSERsp;
 
public class Example4 {
 
	public static void main(String[] args) {
 
		// Populate the request object with necessary information
		DB2WSEReq req = new DB2WSEReq();
		req.setUrl("http://red.rpg-xml.com/db2wse/");
		req.setUser("demo");
		req.setPassword("demo");
		req.setSqlStatement("select from QIWS.QCUSTCDT"); // Note the absence of an asterisk.
 
		// Send the DB request up to the server and receive the response back.
		try {
			DB2WSERsp rsp = DB2WSE.execute(req); 
 
			// This code should never be reached because of the incorrect SQL SELECT statement
			// and instead an error should occur.
			System.out.println("Response Code:" + rsp.getRspCode());
 
		} catch (DB2WSEError e) {
			System.out.println(e.getText());
		}		
	}
}

Console Response

//
// Example of output
//
 
// DWE0010: Unhandled exception in DB2WSE(): DWE0011: API call error in rtvFilDta(): CPF5715: File QIWS.QCUST in library *LIBL not found.

Example 5

Java Source Code

/*
 * Copyright Krengel Technology Inc. 2009
 * 
 * This example program is meant to show how to make use of some supporting classes 
 * Krengel Tech created to facilitate the ease of use in communicating with the 
 * DB2 Web Service Enabler. In particular this one shows how to INSERT a new row, 
 * UPDATE that row, and then DELETE it.
 */
package com.krengeltech.db2wse.example;
 
import java.io.IOException;
 
import com.krengeltech.db2wse.DB2WSE;
import com.krengeltech.db2wse.DB2WSEError;
import com.krengeltech.db2wse.DB2WSEReq;
import com.krengeltech.db2wse.DB2WSERsp;
 
public class Example5 {
 
	public static void main(String[] args) {
 
		// Populate the request object with necessary information
		DB2WSEReq req = new DB2WSEReq();
		req.setUrl("http://red.rpg-xml.com/db2wse/");
		req.setUser("demo");
		req.setPassword("demo");
 
		try {
			//
			// Insert a row
			//
			req.setSqlStatement("INSERT INTO QIWS/QCUSTCDT (CUSNUM,LSTNAM,INIT,STREET,CITY,STATE,ZIPCOD,CDTLMT,CHGCOD,BALDUE,CDTDUE) VALUES(9999,'Bartell','AB','123 Center Ln','Mnkto','MN',56001,1.00,'1',2.00,3.00)");
			DB2WSERsp rsp = DB2WSE.execute(req);
			System.out.println("RspCode:" + rsp.getRspCode() + " RspText:" + rsp.getRspText());
 
			// Put a pause in here so you can view the inserted row.
			System.out.print("Press enter after reviewing the inserted record");
			System.in.read();
 
			//
			// Update a row
			//
			req.setSqlStatement("UPDATE QIWS/QCUSTCDT SET STREET = '44' WHERE CUSNUM=9999");
			rsp = DB2WSE.execute(req);
			System.out.println("RspCode:" + rsp.getRspCode() + " RspText:" + rsp.getRspText());
 
			// Put a pause in here so you can view the inserted row.
			System.out.print("Press enter after reviewing the updated record");
			System.in.read();
 
			//
			// Delete a row
			//
			req.setSqlStatement("DELETE FROM QIWS/QCUSTCDT WHERE CUSNUM=9999");
			rsp = DB2WSE.execute(req);
			System.out.println("RspCode:" + rsp.getRspCode() + " RspText:" + rsp.getRspText());
 
		} catch (DB2WSEError e) {
			System.out.println(e.getMessage());
		} catch (IOException e1) {
			e1.printStackTrace();
		}
	}
}

Console Response

//
// Example of output
//
 
// RspCode:1 RspText:1 row inserted into QIWS/QCUSTCDT
// Press enter after reviewing the inserted record
// RspCode:1 RspText:1 row updated in QIWS/QCUSTCDT
// Press enter after reviewing the updated record
// RspCode:1 RspText:1 row deleted from QIWS/QCUSTCDT