// Source File Name: Dynamic.java 1.3 // // Licensed Materials -- Property of IBM // // (c) Copyright International Business Machines Corporation, 1996, 1997. // All Rights Reserved. // // US Government Users Restricted Rights - // Use, duplication or disclosure restricted by // GSA ADP Schedule Contract with IBM Corp. // This JDBC sample program demonstrates how to // use a dynamic SQL SELECT statement. // For more information about this sample, refer to the README file. // For more information on Programming in Java, refer to the // "Programming in Java" section of the Application Development Guide. // For more information on building and running Java programs for DB2, // refer to the "Building Java Applets and Applications" section of the // Application Building Guide. // For more information on the SQL language, refer to the SQL Reference. import java.sql.*; class Dynamic { static { try { Class.forName ("COM.ibm.db2.jdbc.app.DB2Driver").newInstance (); } catch (Exception e) { System.out.println ("\n Error loading DB2 Driver...\n"); System.out.println (e); System.exit(1); } } public static void main(String argv[]) { try { System.out.println (" Java Dynamic Sample"); // Connect to Sample database Connection con = null; // URL is jdbc:db2:dbname String url = "jdbc:db2:sample"; if (argv.length == 0) { // connect with default id/password con = DriverManager.getConnection(url); } else if (argv.length == 2) { String userid = argv[0]; String passwd = argv[1]; // connect with user-provided username and password con = DriverManager.getConnection(url, userid, passwd); } else { throw new Exception("\nUsage: java Dynamic [username password]\n"); } // Enable transactions con.setAutoCommit(false); // Perform dynamic SQL SELECT using JDBC try { PreparedStatement pstmt1 = con.prepareStatement( "SELECT tabname FROM syscat.tables " + "WHERE tabname <> ? " + "ORDER BY 1"); /* :rk.2:erk. */ // set cursor name for the positioned update statement pstmt1.setCursorName("c1"); /* :rk.3:erk. */ pstmt1.setString(1, "STAFF"); ResultSet rs = pstmt1.executeQuery(); /* :rk.4:erk. */ System.out.print("\n"); while( rs.next() ) /* :rk.5:erk. */ { String tableName = rs.getString("tabname"); System.out.println("Table = " + tableName); }; rs.close(); pstmt1.close(); /* :rk.7:erk. */ } catch( Exception e ) { throw e; } finally { // Rollback the transaction System.out.println("\nRollback the transaction..."); con.rollback(); System.out.println("Rollback done."); } } catch( Exception e ) { System.out.println(e); } } }