db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Van Couvering <da...@vancouvering.com>
Subject Re: [PATCH] Updatable Resultset JDBC api (update and delete for forward only updatable resultsets) support for Network Server
Date Thu, 19 May 2005 16:04:03 GMT
Hi Mamta.  These are some pretty significant incompatibilities between 
DNC and Embedded drivers.  Are all these logged as JIRA bugs?  Are 
they/will they be called out in the documentation?

Thanks,

David

Mamta Satoor wrote:

> Hi,
>  
> Sometime back, I submitted patches for update and delete on forward only 
> updatable resultsets using JDBC apis for Embedded Derby. With this mail, 
> I would like to submit similar support for Network Server using Derby 
> Net Client.
>  
> The functionality for Network Server is similar to what Embedded Derby 
> supports, with the exception of following differences
> 1)DNC requires that the first column in the select list be from the 
> target table.
> eg select 1, c11 from t1 for update of c11 will fail in Network Server 
> because driver looks at first column to determine the target table for 
> update/delete. This is not required by embedded driver. There are tests 
> for this in the attached patch(Positive Test2 in updatableResultSet.java).
> 2)Embedded driver allows Statement name change when there is an open 
> resultset on that statement object. DNC driver does not supported that. 
> (Positive Test8a and Test8b in updatableResultSet.java )
> 3)(Positive Test20) Embedded driver allows updateString on SMALLINT, 
> INTEGER, BIGINT, DECIMAL datatypes. DNC doesn't.
> Embedded driver support updateBytes on CHAR, VARCHAR, LONG VARCHAR 
> datatypes. DNC doesn't
> Embedded driver support updateTime on TIMESTAMP datatypes. DNC doesn't
> Embedded driver supports updateObject with null value. DNC doesn't
> DNC does not support updateClob and updateBlob
>  
> Following files are changed by this patch
> **************svn stat************
> M      
> java\testing\org\apache\derbyTesting\functionTests\tests\lang\updatableResultSet.java
> M      
> java\testing\org\apache\derbyTesting\functionTests\master\DerbyNetClient\updatableResultSet.out 
> 
> M      
> java\testing\org\apache\derbyTesting\functionTests\master\updatableResultSet.out
> M      
> java\testing\org\apache\derbyTesting\functionTests\master\jdk14\updatableResultSet.out
> M      
> java\testing\org\apache\derbyTesting\functionTests\suites\DerbyNet.exclude
> M      java\client\org\apache\derby\client\am\ResultSet.java
> **********************************
>  
> Following is a brief description of the actual changes that are going 
> into the patch
> 1)After updateRow(provided updateXXX were issued on the row before 
> updateRow) and deleteRow, position the resultset to right before the 
> next row. This matches the embedded driver behavior.
> 2)If ResultSet is not positioned on a row and user issues updateRow (w/o 
> prior updateXXX), then throw an exception that it is not a valid 
> operation. This matches the embedded driver behavior.
> 3)Made changes to DNC so that it does not require all the updatable 
> columns in the sql to be modified with updateXXX prior to updateRow. 
> This matches the embedded driver behavior.
> 4)To preserve case sensitivity and spaces in the names, put quotes 
> around database object names like table name, column name, cursor name 
> etc. Similar to embedded driver.(Positive Test31a, Test31b)
> 5)For a select sql like, select 2, c11 from t1, Derby has null for table 
> name and schema name for column 2. DNC needs to check for these nulls to 
> avoid null pointer exception.
>  
> As always, please review the patch and let me know of any comments,
> Mamta
>  
> 
> 
> ------------------------------------------------------------------------
> 
> Index: java/testing/org/apache/derbyTesting/functionTests/tests/lang/updatableResultSet.java
> ===================================================================
> --- java/testing/org/apache/derbyTesting/functionTests/tests/lang/updatableResultSet.java	(revision 170535)
> +++ java/testing/org/apache/derbyTesting/functionTests/tests/lang/updatableResultSet.java	(working copy)
> @@ -253,13 +253,7 @@
>  			System.out.println("Negative Testl - request for scroll insensitive updatable resultset will give a read only scroll insensitive resultset");
>  			conn.clearWarnings();
>  			stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
> -			warnings = conn.getWarnings();
> -			while (warnings != null)
> -			{
> -				JDBCDisplayUtil.ShowWarnings(System.out, warnings);
> -				warnings = warnings.getNextWarning();
> -			}
> -			conn.clearWarnings();
> +			JDBCDisplayUtil.ShowWarnings(System.out, conn);
>  			System.out.println("requested TYPE_SCROLL_INSENSITIVE, CONCUR_UPDATABLE but that is not supported");
>  			System.out.println("Make sure that we got TYPE_SCROLL_INSENSITIVE? " +  (stmt.getResultSetType() == ResultSet.TYPE_SCROLL_INSENSITIVE));
>  			System.out.println("Make sure that we got CONCUR_READ_ONLY? " +  (stmt.getResultSetConcurrency() == ResultSet.CONCUR_READ_ONLY));
> @@ -292,12 +286,7 @@
>  
>  			System.out.println("Negative Test2 - request for scroll sensitive updatable resultset will give a read only scroll insensitive resultset");
>  			stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
> -			while (warnings != null)
> -			{
> -				System.out.println("warnings on connection = " + warnings);
> -				warnings = warnings.getNextWarning();
> -			}
> -			conn.clearWarnings();
> +			JDBCDisplayUtil.ShowWarnings(System.out, conn);
>        System.out.println("requested TYPE_SCROLL_SENSITIVE, CONCUR_UPDATABLE but that is not supported");
>  			System.out.println("Jira issue Derby-154 : When client connects to Network Server using JCC, it incorrectly shows support for scroll sensitive updatable resultsets");
>        System.out.println("Make sure that we got TYPE_SCROLL_INSENSITIVE? " +  (stmt.getResultSetType() == ResultSet.TYPE_SCROLL_INSENSITIVE));
> @@ -377,20 +366,13 @@
>  			//have to close the resultset because by default, resultsets are held open over commit
>  			rs.close();
>  
> -
>  			System.out.println("Negative Test5 - request updatable resultset for sql with no FOR UPDATE clause");
>  			stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
>  			rs = stmt.executeQuery("select * from t1");//notice that we forgot to give mandatory FOR UPDATE clause for updatable resultset
>  			System.out.println("Make sure that we got CONCUR_READ_ONLY? " + (rs.getConcurrency() == ResultSet.CONCUR_READ_ONLY));
>  			System.out.println("Jira issue Derby-159 : Warnings raised by Derby are not getting passed to the Client in Network Server Mode");
>  			System.out.println("Will see the warnings in embedded mode only");
> -			warnings = rs.getWarnings();
> -			while (warnings != null)
> -			{
> -				System.out.println("Expected warnings on resultset = " + warnings);
> -				warnings = warnings.getNextWarning();
> -			}
> -			rs.clearWarnings();
> +			JDBCDisplayUtil.ShowWarnings(System.out, rs);
>  			rs.next();
>        System.out.println("Now attempting to send a delete on a sql with no FOR UPDATE clause.");
>  			try {
> @@ -410,7 +392,6 @@
>  				System.out.println("SQL State : " + e.getSQLState());
>  				System.out.println("Got expected exception " + e.getMessage());
>  			}
> -
>  			//have to close the resultset because by default, resultsets are held open over commit
>  			rs.close();
>  
> @@ -420,13 +401,7 @@
>  			System.out.println("Make sure that we got CONCUR_READ_ONLY? " + (rs.getConcurrency() == ResultSet.CONCUR_READ_ONLY));
>  			System.out.println("Jira issue Derby-159 : Warnings raised by Derby are not getting passed to the Client in Network Server Mode");
>  			System.out.println("Will see the warnings in embedded mode only");
> -			warnings = rs.getWarnings();
> -			while (warnings != null)
> -			{
> -				System.out.println("Expected warnings on resultset = " + warnings);
> -				warnings = warnings.getNextWarning();
> -			}
> -			rs.clearWarnings();
> +			JDBCDisplayUtil.ShowWarnings(System.out, rs);
>  			rs.next();
>        System.out.println("Now attempting to send a delete on a sql with FOR READ ONLY clause.");
>  			try {
> @@ -463,14 +438,12 @@
>  				System.out.println("Got expected exception " + e.getMessage());
>  			}
>        System.out.println("Now attempt a updateRow without first doing next on the resultset.");
> -			System.out.println("In embedded mode, updateRow will check if it is on a row or not even though no changes have been made to the row using updateXXX");
> -			System.out.println("In Network Server mode, if no updateXXX were issued before updateRow, then updateRow is a no-op and doesn't check if it is on a row or not");
> +			System.out.println("updateRow will check if it is on a row or not even " +
> +				"though no changes have been made to the row using updateXXX");
>  			try {
>  				rs.updateRow();
> -				if (TestUtil.isEmbeddedFramework()) 
> -					System.out.println("FAIL!!! In embedded mode, this updateRow should have failed because resultset is not on a row");
> -				else
> -					System.out.println("PASS!!! In Network Server mode, this updateRow is a no-op because no updateXXX were issued before the updateRow");
> +				System.out.println("FAIL!!! updateRow should have failed because " +
> +						"resultset is not on a row");
>  			}
>  			catch (SQLException e) {
>  				System.out.println("SQL State : " + e.getSQLState());
> @@ -664,12 +637,7 @@
>  
>  			System.out.println("Positive Test1a - request updatable resultset for forward only type resultset");
>  			stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
> -			warnings = conn.getWarnings();
> -			while (warnings != null)
> -			{
> -				System.out.println("Unexpected warnings = " + warnings);
> -				warnings = warnings.getNextWarning();
> -			}
> +			JDBCDisplayUtil.ShowWarnings(System.out, conn);
>        System.out.println("requested TYPE_FORWARD_ONLY, CONCUR_UPDATABLE");
>        System.out.println("got TYPE_FORWARD_ONLY? " +  (stmt.getResultSetType() == ResultSet.TYPE_FORWARD_ONLY));
>        System.out.println("got CONCUR_UPDATABLE? " +  (stmt.getResultSetConcurrency() == ResultSet.CONCUR_UPDATABLE));
> @@ -679,17 +647,15 @@
>        System.out.println("column 1 on this row before deleteRow is " + rs.getInt(1));
>        System.out.println("column 2 on this row before deleteRow is " + rs.getString(2));
>  			rs.deleteRow();
> -      System.out.println("Since after deleteRow(), in embedded mode, ResultSet is positioned before the next row, getXXX will fail");
> -      System.out.println("In Network Server mode, the ResultSet stays on the deleted row after deleteRow and hence no error for getXXX");
> +      System.out.println("Since after deleteRow(), in embedded mode and Network "+
> +				"Server mode using Derby Net Client, ResultSet is positioned before " +
> +				"the next row, getXXX will fail");
>  			try {
>  				System.out.println("column 1 on this deleted row is " + rs.getInt(1));
>  			}
>  			catch (SQLException e) {
> -				if (TestUtil.isEmbeddedFramework()) {
> -					System.out.println("SQL State : " + e.getSQLState());
> -					System.out.println("Got expected exception " + e.getMessage());
> -				} else
> -					System.out.println("Got unexpected exception " + e.getMessage());
> +				System.out.println("SQL State : " + e.getSQLState());
> +				System.out.println("Got expected exception " + e.getMessage());
>  			}
>        System.out.println("calling deleteRow again w/o first positioning the ResultSet on the next row will fail");
>  			try {
> @@ -707,16 +673,10 @@
>  			//have to close the resultset because by default, resultsets are held open over commit
>  			rs.close();
>  
> -			if (TestUtil.isEmbeddedFramework()) {
>  			System.out.println("Positive Test1b - request updatable resultset for forward only type resultset");
>  			reloadData();
>  			stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
> -			warnings = conn.getWarnings();
> -			while (warnings != null)
> -			{
> -				System.out.println("Unexpected warnings = " + warnings);
> -				warnings = warnings.getNextWarning();
> -			}
> +			JDBCDisplayUtil.ShowWarnings(System.out, conn);
>  			rs = stmt.executeQuery("SELECT * FROM t1 FOR UPDATE");
>  			rs.next();
>  			System.out.println("column 1 on this row before updateInt is " + rs.getInt(1));
> @@ -725,8 +685,9 @@
>  			System.out.println("column 2 on this row before updateString is " + rs.getString(2));
>  			System.out.println("now updateRow on the row");
>  			rs.updateRow();
> -			System.out.println("Since after updateRow(), in embedded mode, ResultSet is positioned before the next row, getXXX will fail");
> -      System.out.println("In Network Server mode, the ResultSet stays on the updated row after updateRow and hence no error for getXXX");
> +      System.out.println("Since after updateRow(), in embedded mode and Network "+
> +				"Server mode using Derby Net Client, ResultSet is positioned before " +
> +				"the next row, getXXX will fail");
>  			try {
>  				System.out.println("column 1 on this updateRow row is " + rs.getInt(1));
>  			}
> @@ -751,14 +712,33 @@
>  			//have to close the resultset because by default, resultsets are held open over commit
>  			rs.close();
>  
> -			System.out.println("Positive Test2 - even if no columns from table specified in the column list, we should be able to get updatable resultset");
> +			System.out.println("Positive Test2 - even if no columns from table " +
> +				"specified in the column list, we should be able to get updatable " +
> +				"resultset");
>        reloadData();
> +			System.out.println("Will work in embedded mode because target table is "+
> +				"not derived from the first column in the select list");
> +			System.out.println("Will not work in network server mode because it " +
> +				"derives the target tabke from the first column in the select list");
>        System.out.println("total number of rows in T1 ");
>        dumpRS(stmt.executeQuery("select count(*) from t1"));
>        rs = stmt.executeQuery("SELECT 1, 2 FROM t1 FOR UPDATE");
>  			rs.next();
>        System.out.println("column 1 on this row is " + rs.getInt(1));
> -			rs.deleteRow();
> +			try {
> +				rs.deleteRow();
> +				if (TestUtil.isNetFramework())
> +					System.out.println("FAIL!!! should have failed in network server");
> +				else
> +					System.out.println("PASS!!! passed in embedded mode");
> +			}
> +			catch (SQLException e) {
> +				if (TestUtil.isNetFramework()) {
> +					System.out.println("SQL State : " + e.getSQLState());
> +					System.out.println("Got expected exception " + e.getMessage());
> +				} else
> +					System.out.println("Got unexpected exception " + e.getMessage());
> +			}
>  			//have to close the resultset because by default, resultsets are held open over commit
>  			rs.close();
>        System.out.println("total number of rows in T1 after one deleteRow is ");
> @@ -908,7 +888,7 @@
>        System.out.println("deletesAreDetected(ResultSet.TYPE_FORWARD_ONLY)? " + dbmt.deletesAreDetected(ResultSet.TYPE_FORWARD_ONLY));
>        reloadData();
>  			stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
> -      rs = stmt.executeQuery("SELECT 1, 2 FROM t1 FOR UPDATE of c1");
> +      rs = stmt.executeQuery("SELECT * FROM t1 FOR UPDATE of c1");
>  			rs.next();
>        System.out.println("The JDBC program should look at rowDeleted only if deletesAreDetected returns true");
>        System.out.println("Since Derby returns false for detlesAreDetected for FORWARD_ONLY updatable resultset,the program should not rely on rs.rowDeleted() for FORWARD_ONLY updatable resultsets");
> @@ -971,21 +951,46 @@
>  			rs.close();
>  			stmt.executeUpdate("DROP TABLE SESSION.t3");
>  
> -			System.out.println("Positive Test8a - change the name of the resultset and see if deleteRow still works");
> +			System.out.println("Positive Test8a - change the name of the statement " +
> +				"when the resultset is open and see if deleteRow still works");
> +			System.out.println("This test works in embedded mode since Derby can " +
> +				"handle the change in the name of the statement with an open resultset");
> +			System.out.println("But it fails under Network Server mode because JCC " +
> +				"and Derby Net Client do not allow statement name change when there " +
> +				"an open resultset against it");
>        reloadData();
>  			stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
>        System.out.println("change the cursor name(case sensitive name) with setCursorName and then try to deleteRow");
>  			stmt.setCursorName("CURSORNOUPDATe");//notice this name is case sensitive
> -      rs = stmt.executeQuery("SELECT 1, 2 FROM t1 FOR UPDATE of c1");
> +      rs = stmt.executeQuery("SELECT * FROM t1 FOR UPDATE of c1");
>  			rs.next();
>  			rs.deleteRow();
>        System.out.println("change the cursor name one more time with setCursorName and then try to deleteRow");
> -			stmt.setCursorName("CURSORNOUPDATE1");
> -			rs.next();
> -			rs.deleteRow();
> +			try {
> +				stmt.setCursorName("CURSORNOUPDATE1");
> +				rs.next();
> +				rs.deleteRow();
> +				if (TestUtil.isNetFramework())
> +					System.out.println("FAIL!!! should have failed in network server");
> +				else
> +					System.out.println("PASS!!! passed in embedded mode");
> +			}
> +			catch (SQLException e) {
> +				if (TestUtil.isNetFramework()) {
> +					System.out.println("SQL State : " + e.getSQLState());
> +					System.out.println("Got expected exception " + e.getMessage());
> +				} else
> +					System.out.println("Got unexpected exception " + e.getMessage());
> +			}
>  			rs.close();
>  
> -			System.out.println("Positive Test8b - change the name of the resultset and see if updateRow still works");
> +			System.out.println("Positive Test8b - change the name of the statement " +
> +				"when the resultset is open and see if updateRow still works");
> +			System.out.println("This test works in embedded mode since Derby can " +
> +				"handle the change in the name of the statement with an open resultset");
> +			System.out.println("But it fails under Network Server mode because JCC " +
> +				"and Derby Net Client do not allow statement name change when there " +
> +				"an open resultset against it");
>        reloadData();
>  			System.out.println("change the cursor name one more time with setCursorName and then try to updateRow");
>  			stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
> @@ -994,21 +999,53 @@
>  			rs = stmt.executeQuery("SELECT * FROM t1 FOR UPDATE of c1");
>  			rs.next();
>  			rs.updateLong(1,123);
> -			stmt.setCursorName("CURSORNOUPDATE1");
> -			rs.updateRow();
> +			try {
> +				stmt.setCursorName("CURSORNOUPDATE1");
> +				rs.updateRow();
> +				if (TestUtil.isNetFramework())
> +					System.out.println("FAIL!!! should have failed in network server");
> +				else
> +					System.out.println("PASS!!! passed in embedded mode");
> +			}
> +			catch (SQLException e) {
> +				if (TestUtil.isNetFramework()) {
> +					System.out.println("SQL State : " + e.getSQLState());
> +					System.out.println("Got expected exception " + e.getMessage());
> +				} else
> +					System.out.println("Got unexpected exception " + e.getMessage());
> +			}
>  			rs.close();
>  
> -			System.out.println("Positive Test9a - using correlation name for the table in the select sql is not a problem");
> +			System.out.println("Positive Test9a - using correlation name for the " +
> +				"table in the select sql works in embedded mode and Network Server " +
> +				"using Derby Net Client driver");
> +			System.out.println("Correlation name for table does not work in Network "+
> +				"Server mode (using JCC) because the drivers construct the delete sql "+
> +				"with the correlation name rather than the base table name");
>  			reloadData();
>  			stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
> -      rs = stmt.executeQuery("SELECT 1, 2 FROM t1 abcde FOR UPDATE of c1");
> +      rs = stmt.executeQuery("SELECT * FROM t1 abcde FOR UPDATE of c1");
>  			rs.next();
>        System.out.println("column 1 on this row is " + rs.getInt(1));
>        System.out.println("now try to deleteRow");
> -			rs.deleteRow();
> +			try {
> +				rs.deleteRow();
> +				if (TestUtil.isJCCFramework())
> +					System.out.println("FAIL!!! should have failed in network server");
> +				else
> +					System.out.println("PASS!!! passed in embedded mode");
> +			}
> +			catch (SQLException e) {
> +				if (TestUtil.isJCCFramework()) {
> +					System.out.println("SQL State : " + e.getSQLState());
> +					System.out.println("Got expected exception " + e.getMessage());
> +				} else
> +					System.out.println("Got unexpected exception " + e.getMessage());
> +			}
>  			rs.close();
> -                           
> -			System.out.println("Positive Test9b - using correlation name for updatable column name is not allowed");
> +
> +			System.out.println("Positive Test9b - using correlation name for " +
> +				"updatable columns is not allowed.");
>  			reloadData();
>  			stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
>  			System.out.println("Table t1 has following rows");
> @@ -1055,22 +1092,6 @@
>  			System.out.println("Table t1 after updateRow has following rows");
>  			dumpRS(stmt.executeQuery("select * from t1"));
>  
> -			System.out.println("Positive Test9c - try to updateXXX on a readonly column. Should get error");
> -			reloadData();
> -			rs = stmt.executeQuery("SELECT c1, c2 FROM t1 abcde FOR UPDATE of c1");
> -			rs.next();
> -			try {
> -				rs.updateString(2,"bbbb");
> -				System.out.println("FAIL!!! updateString on readonly column should have failed");
> -			}
> -			catch (SQLException e) {
> -				System.out.println("SQL State : " + e.getSQLState());
> -				System.out.println("Got expected exception " + e.getMessage());
> -			}
> -			rs.close();
> -			System.out.println("Table t1 has following rows");
> -			dumpRS(stmt.executeQuery("select * from t1"));
> -
>  			System.out.println("Positive Test9d - try to updateXXX on a readonly column with correlation name. Should get error");
>  			reloadData();
>  			rs = stmt.executeQuery("SELECT c1, c2 as col2 FROM t1 abcde FOR UPDATE of c1");
> @@ -1092,9 +1113,9 @@
>        reloadData();
>  			stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
>  			stmt1 = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
> -      rs = stmt.executeQuery("SELECT 1, 2 FROM t1 FOR UPDATE");
> +      rs = stmt.executeQuery("SELECT * FROM t1 FOR UPDATE");
>  			rs.next();
> -			rs1 = stmt1.executeQuery("SELECT 1, 2 FROM t1 FOR UPDATE");
> +			rs1 = stmt1.executeQuery("SELECT * FROM t1 FOR UPDATE");
>  			rs1.next();
>  			System.out.println("delete using first resultset");
>  			rs.deleteRow();
> @@ -1119,7 +1140,7 @@
>  			stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
>  			stmt.executeUpdate("call SYSCS_UTIL.SYSCS_SET_RUNTIMESTATISTICS(1)");
>  			stmt.setFetchSize(200);
> -      rs = stmt.executeQuery("SELECT 1, 2 FROM t1 FOR UPDATE of c1");
> +      rs = stmt.executeQuery("SELECT * FROM t1 FOR UPDATE of c1");
>  			System.out.println("Notice the Fetch Size in run time statistics output.");
>        showScanStatistics(rs, conn);
>  			System.out.println("statement's fetch size is " + stmt.getFetchSize());
> @@ -1205,6 +1226,7 @@
>  			dumpRS(stmt.executeQuery("select * from table2WithTriggers"));
>  			//have to close the resultset because by default, resultsets are held open over commit
>  			rs.close();
> +			conn.rollback();
>  
>  			System.out.println("Positive Test14a - make sure self referential delete cascade works when deleteRow is issued");
>  			dumpRS(stmt.executeQuery("select * from selfReferencingT1"));
> @@ -1252,7 +1274,7 @@
>        reloadData();
>        conn.setAutoCommit(false);
>  			stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
> -      rs = stmt.executeQuery("SELECT 1, 2 FROM t1 FOR UPDATE");
> +      rs = stmt.executeQuery("SELECT * FROM t1 FOR UPDATE");
>  			rs.next();
>  			System.out.println("Opened an updatable resultset. Now trying to drop that table through another Statement");
>  			stmt1 = conn.createStatement();
> @@ -1503,13 +1525,15 @@
>  					}
>  				}
>  			}
> +			conn.rollback();
>  			conn.setAutoCommit(true);
>  
>  			System.out.println("Positive Test21 - Test all updateXXX(excluding updateObject) methods on all the supported sql datatypes");
>  			conn.setAutoCommit(false);
> -			stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
> -			stmt1 = conn.createStatement();
> +			PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM AllDataTypesForTestingTable FOR UPDATE", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
> +			PreparedStatement pstmt1 = conn.prepareStatement("SELECT * FROM AllDataTypesNewValuesData");
>  			for (int sqlType = 1, checkAgainstColumn = 1; sqlType <= allSQLTypes.length; sqlType++ ) {
> +				conn.rollback();
>  				System.out.println("Next datatype to test is " + allSQLTypes[sqlType-1]);
>  				for (int updateXXXName = 1;  updateXXXName <= allUpdateXXXNames.length; updateXXXName++) {
>  					checkAgainstColumn = updateXXXName;
> @@ -1519,9 +1543,9 @@
>  							System.out.println("    Using column position as first parameter to " + allUpdateXXXNames[updateXXXName-1]);
>  						else
>  							System.out.println("    Using column name as first parameter to " + allUpdateXXXNames[updateXXXName-1]);
> -						rs = stmt.executeQuery("SELECT * FROM AllDataTypesForTestingTable FOR UPDATE");
> +						rs = pstmt.executeQuery();
>  						rs.next();
> -						rs1 = stmt1.executeQuery("SELECT * FROM AllDataTypesNewValuesData");
> +						rs1 = pstmt1.executeQuery();
>  						rs1.next();
>  						try {
>  							if (updateXXXName == 1) {//update column with updateShort methods
> @@ -1642,7 +1666,8 @@
>  									rs.updateRef(ColumnNames[sqlType-1], null);
>                }
>  							rs.updateRow();
> -							if (updateXXXRulesTableForEmbedded[sqlType-1][updateXXXName-1].equals("ERROR")) {
> +							if ((TestUtil.isNetFramework() && updateXXXRulesTableForNetworkServer[sqlType-1][updateXXXName-1].equals("ERROR")) ||
> +								(TestUtil.isEmbeddedFramework() && updateXXXRulesTableForEmbedded[sqlType-1][updateXXXName-1].equals("ERROR"))) {
>  								System.out.println("FAILURE : We shouldn't reach here. The test should have failed earlier on updateXXX or updateRow call");
>  								return;
>  							}
> @@ -1652,7 +1677,8 @@
>  								return;
>  							}
>  						} catch (Throwable e) {
> -							if (updateXXXRulesTableForEmbedded[sqlType-1][updateXXXName-1].equals("ERROR"))
> +							if ((TestUtil.isNetFramework() && updateXXXRulesTableForNetworkServer[sqlType-1][updateXXXName-1].equals("ERROR")) ||
> +								(TestUtil.isEmbeddedFramework() && updateXXXRulesTableForEmbedded[sqlType-1][updateXXXName-1].equals("ERROR")))
>  								System.out.println("      Got expected exception : " + e.getMessage());
>  							else {
>  								if ((sqlType == 14 || sqlType == 15 || sqlType == 16) && //we are dealing with DATE/TIME/TIMESTAMP column types
> @@ -1669,14 +1695,14 @@
>  					rs1.close();
>  				}
>  			}
> +			conn.rollback();
>  			conn.setAutoCommit(true);
>  
>  			System.out.println("Positive Test22 - Test updateObject method");
>  			conn.setAutoCommit(false);
> -			stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
> -			stmt1 = conn.createStatement();
>  			String displayString;
>  			for (int sqlType = 1; sqlType <= allSQLTypes.length; sqlType++ ) {
> +				conn.rollback();
>  				System.out.println("Next datatype to test is " + allSQLTypes[sqlType-1]);
>  				for (int updateXXXName = 1;  updateXXXName <= allUpdateXXXNames.length; updateXXXName++) {
>  					for (int indexOrName = 1; indexOrName <= 2; indexOrName++) {
> @@ -1684,9 +1710,9 @@
>  							displayString = "  updateObject with column position &";
>  						else
>  							displayString = "  updateObject with column name &";
> -						rs = stmt.executeQuery("SELECT * FROM AllDataTypesForTestingTable FOR UPDATE");
> +						rs = pstmt.executeQuery();
>  						rs.next();
> -						rs1 = stmt1.executeQuery("SELECT * FROM AllDataTypesNewValuesData");
> +						rs1 = pstmt1.executeQuery();
>  						rs1.next();
>  						try {
>  							if (updateXXXName == 1){ //updateObject using Short object
> @@ -1787,15 +1813,34 @@
>  									rs.updateObject(ColumnNames[sqlType-1], new Boolean(rs1.getBoolean(1)));
>  							} else if (updateXXXName == 19){ //update column with updateNull methods
>  								System.out.println(displayString + " null as parameters");
> +								try {
>  								if (indexOrName == 1) //test by passing column position
>  									rs.updateObject(sqlType, null);
>  								else //test by passing column name
>  									rs.updateObject(ColumnNames[sqlType-1], null);
> +								} catch (Throwable e) {
> +								if (TestUtil.isNetFramework()) {
> +									System.out.println("   Got expected exception:" + e.getMessage());
> +									continue;
> +								} else {
> +									System.out.println("   Got UNexpected exception:" + e.getMessage());
> +									return;
> +								}
> +								}
>  							} else if (updateXXXName == 20 || updateXXXName == 21) //since Derby does not support Array, Ref datatype, this is a no-op
>  									continue;
>  
>  								rs.updateRow();
> -								if (updateXXXRulesTableForEmbedded[sqlType-1][updateXXXName-1].equals("ERROR")) {
> +								if (TestUtil.isNetFramework() && updateXXXName == 13 &&
> +									(sqlType==7 || sqlType==8 || sqlType==9 || sqlType==13)) 
> +								//updateObject with clob allowed on char, varchar, longvarchar & clob
> +									System.out.print("");
> +								else if (TestUtil.isNetFramework() && updateXXXName == 17 &&
> +									(sqlType==12 || sqlType==17)) 
> +								//updateObject with blob allowed on longvarchar for bit & blob
> +									System.out.print("");
> +								else if ((TestUtil.isNetFramework() && updateXXXRulesTableForNetworkServer[sqlType-1][updateXXXName-1].equals("ERROR")) ||
> +									(TestUtil.isEmbeddedFramework() && updateXXXRulesTableForEmbedded[sqlType-1][updateXXXName-1].equals("ERROR"))) {
>  									System.out.println("FAILURE : We shouldn't reach here. The test should have failed earlier on updateXXX or updateRow call");
>  									return;
>  								}
> @@ -1805,7 +1850,8 @@
>  									return;
>  								}
>  						} catch (Throwable e) {
> -								if (updateXXXRulesTableForEmbedded[sqlType-1][updateXXXName-1].equals("ERROR"))
> +							if ((TestUtil.isNetFramework() && updateXXXRulesTableForNetworkServer[sqlType-1][updateXXXName-1].equals("ERROR")) ||
> +								(TestUtil.isEmbeddedFramework() && updateXXXRulesTableForEmbedded[sqlType-1][updateXXXName-1].equals("ERROR")))
>  									System.out.println("    Got expected exception : " + e.getMessage());
>  								else {
>  									if ((sqlType == 14 || sqlType == 15 || sqlType == 16) && //we are dealing with DATE/TIME/TIMESTAMP column types
> @@ -1821,6 +1867,7 @@
>  					}
>  				}
>  			}
> +			conn.rollback();
>  			conn.setAutoCommit(true);
>  
>  			System.out.println("Positive Test23 - Test cancelRowUpdates after updateXXX methods on all the supported sql datatypes");
> @@ -1866,7 +1913,7 @@
>  			if(rs.getBigDecimal(4).compareTo(rs1.getBigDecimal(4)) != 0)
>  				return;
>  			rs.cancelRowUpdates();
> -			if(rs.getBigDecimal(4) != bd)
> +			if(rs.getBigDecimal(4).compareTo(bd) != 0)
>  				return;
>  
>  			System.out.println("  updateFloat and then cancelRowUpdates");
> @@ -1968,7 +2015,9 @@
>  			if(!rs.getTimestamp(16).toString().equals(timeStamp.toString()))
>  				return;
>  
> -			if (JVMInfo.JDK_ID != 2){ //Don't test this method when running JDK1.3 because jdk1.3 does not support the method
> +			//Don't test this when running JDK1.3/in Network Server because they both
> +			//do not support updateClob and updateBlob
> +			if (JVMInfo.JDK_ID != 2 && TestUtil.isEmbeddedFramework()){ 
>  				System.out.println("  updateClob and then cancelRowUpdates");
>  				String clb1 = rs.getString(13);
>  				rs.updateClob(13,rs1.getClob(13));
> @@ -2121,9 +2170,9 @@
>  			System.out.println("Positive Test30 - call updateXXX methods on only columns that correspond to a column in the table");
>  			dumpRS(stmt.executeQuery("select * from t1"));
>  			stmt = conn.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_UPDATABLE);
> -			rs = stmt.executeQuery("SELECT 1, 2, c1, c2 FROM t1 FOR UPDATE");
> +			rs = stmt.executeQuery("SELECT c2, 1, 2, c1 FROM t1 FOR UPDATE");
>  			rs.next();
> -			rs.updateInt(3,22);
> +			rs.updateInt(4,22);
>  			rs.updateRow();
>  			rs.close();
>  			System.out.println("  Make sure that changes made it to the database correctly");
> @@ -2166,12 +2215,25 @@
>  			rs.next();
>  			try {
>  				rs.updateInt(2,22);
> -				System.out.println("FAIL!!! updateInt should have failed because c12 is not the FOR UPDATE columns list.");
> +				if (TestUtil.isEmbeddedFramework())
> +				System.out.println("PASS!!! Embedded throws exception for updateRow");
> +				else
> +				System.out.println("FAIL!!! Network Server should throw exception for updateXXX");
>  			}
>  			catch (SQLException e) {
>  				System.out.println("SQL State : " + e.getSQLState());
>  				System.out.println("Got expected exception " + e.getMessage());
>  			}
> +			try {
> +				rs.updateRow();
> +				System.out.println("updateRow passed");
> +			}
> +			catch (SQLException e) {
> +				if (TestUtil.isNetFramework())
> +				System.out.println("FAIL!!! updateRow w/o updateXXX is no-op in Network Server");
> +				else
> +				System.out.println("FAIL!!! exception is " + e.getMessage());
> +			}
>  			rs.close();
>  			System.out.println("  Make sure the contents of table are unchanged");
>  			dumpRS(stmt.executeQuery("select * from t1"));
> @@ -2201,7 +2263,6 @@
>  			dumpRS(stmt.executeQuery("select * from s2.t1"));
>  
>  			teardown();
> -			}
>  
>  			conn.close();
>  
> @@ -2214,11 +2275,11 @@
>  	}
>  
>  	static boolean verifyData(int sqlType, int updateXXXName, String checkAgainstTheTable) throws SQLException {
> -		Statement stmt1 = conn.createStatement();
> -		ResultSet rs1 = stmt1.executeQuery("select * from " + checkAgainstTheTable);
> +		PreparedStatement pstmt1 = conn.prepareStatement("select * from " + checkAgainstTheTable);
> +		ResultSet rs1 = pstmt1.executeQuery();
>  		rs1.next();
> -		Statement stmt = conn.createStatement();
> -		ResultSet rs = stmt.executeQuery("select * from AllDataTypesForTestingTable");
> +		PreparedStatement pstmt = conn.prepareStatement("select * from AllDataTypesForTestingTable");
> +		ResultSet rs = pstmt.executeQuery();
>  		rs.next();
>  
>  		if (updateXXXName == 18){ //verifying updateBoolean
> @@ -2235,13 +2296,13 @@
>  				return(false);
>  		}
>  
> -		if (sqlType == 1) //verify update made to SMALLINT column with updateXXX methods
> +		if (sqlType == 1) {//verify update made to SMALLINT column with updateXXX methods
>  			if(rs.getShort(sqlType) != rs1.getShort(updateXXXName)) {
>  				return(false); }
> -		else if (sqlType == 2)  //verify update made to INTEGER column with updateXXX methods
> +		} else if (sqlType == 2) {  //verify update made to INTEGER column with updateXXX methods
>  			if(rs.getInt(sqlType) != rs1.getInt(updateXXXName)) {
>  				return(false); }
> -		else if (sqlType ==  3)  //verify update made to BIGINT column with updateXXX methods
> +		} else if (sqlType ==  3)  //verify update made to BIGINT column with updateXXX methods
>  			if(rs.getLong(sqlType) != rs1.getLong(updateXXXName)) {
>  				return(false); }
>  		else if (sqlType == 4)  //verify update made to DECIMAL column with updateXXX methods
> @@ -2265,16 +2326,22 @@
>  		else if (sqlType == 14)  //verify update made to DATE column with updateXXX methods
>  			if(rs.getDate(sqlType) != rs1.getDate(updateXXXName)) {
>  				return(false); }
> -		else if (sqlType == 15)  //verify update made to TIME column with updateXXX methods
> +		else if (sqlType == 15) { //verify update made to TIME column with updateXXX methods
>  			if(rs.getTime(sqlType) != rs1.getTime(updateXXXName)) {
>  				return(false); }
> -		else if (sqlType == 16)  //verify update made to TIMESTAMP column with updateXXX methods
> -			if(rs.getTimestamp(sqlType) != rs1.getTimestamp(updateXXXName)) {
> +		} else if (sqlType == 16) { //verify update made to TIMESTAMP column with updateXXX methods
> +//			if(rs.getTimestamp(sqlType) != rs1.getTimestamp(updateXXXName)) {
> +			if(!rs.getTimestamp(sqlType).equals(rs1.getTimestamp(updateXXXName))) {
>  				return(false); }
> -		else if (sqlType == 17 && JVMInfo.JDK_ID != 2)  //verify update made to BLOB column with updateXXX methods
> +		} else if (sqlType == 17 && JVMInfo.JDK_ID != 2)  //verify update made to BLOB column with updateXXX methods
>  			if(rs.getBlob(sqlType).getBytes(1,4) != rs1.getBlob(updateXXXName).getBytes(1,4)) {
>  				return(false); }
>  
> +		rs.close();
> +		rs1.close();
> +		pstmt.close();
> +		pstmt1.close();
> +		Statement stmt = conn.createStatement();
>  		stmt.executeUpdate("delete from AllDataTypesForTestingTable");
>  		StringBuffer insertSQL = new StringBuffer("insert into AllDataTypesForTestingTable values(");
>  		for (int type = 0; type < allSQLTypes.length - 1; type++)
> Index: java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/updatableResultSet.out
> ===================================================================
> --- java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/updatableResultSet.out	(revision 170535)
> +++ java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/updatableResultSet.out	(working copy)
> @@ -13,6 +13,8 @@
>  SQL State : null
>  Got expected exception This method cannot be invoked while the cursor is on the insert row or if the concurrency of this ResultSet object is CONCUR_READ_ONLY.
>  Negative Test2 - request for scroll sensitive updatable resultset will give a read only scroll insensitive resultset
> +WARNING (no SQLState): Scroll sensitive result sets are not supported by server; remapping to forward-only cursor
> +WARNING (no SQLState): Insensitive updatable result sets are not supported by server; remapping to insensitive read-only cursor
>  requested TYPE_SCROLL_SENSITIVE, CONCUR_UPDATABLE but that is not supported
>  Jira issue Derby-154 : When client connects to Network Server using JCC, it incorrectly shows support for scroll sensitive updatable resultsets
>  Make sure that we got TYPE_SCROLL_INSENSITIVE? true
> @@ -64,9 +66,9 @@
>  SQL State : XCL08
>  Got expected exception Cursor 'SQL_CURLH000C8' is not on a row.
>  Now attempt a updateRow without first doing next on the resultset.
> -In embedded mode, updateRow will check if it is on a row or not even though no changes have been made to the row using updateXXX
> -In Network Server mode, if no updateXXX were issued before updateRow, then updateRow is a no-op and doesn't check if it is on a row or not
> -PASS!!! In Network Server mode, this updateRow is a no-op because no updateXXX were issued before the updateRow
> +updateRow will check if it is on a row or not even though no changes have been made to the row using updateXXX
> +SQL State : null
> +Got expected exception Invalid operation to update at current cursor position
>  ResultSet is positioned after the last row. attempt to deleteRow at this point should fail!
>  SQL State : null
>  Got expected exception Invalid operation: result set closed
> @@ -123,12 +125,3020 @@
>  JDBC 2.0 updatable resultset apis on this ResultSet object will pass because this is an updatable resultset
>  column 1 on this row before deleteRow is 1
>  column 2 on this row before deleteRow is aa                  
> -Since after deleteRow(), in embedded mode, ResultSet is positioned before the next row, getXXX will fail
> -In Network Server mode, the ResultSet stays on the deleted row after deleteRow and hence no error for getXXX
> -column 1 on this deleted row is 0
> +Since after deleteRow(), in embedded mode and Network Server mode using Derby Net Client, ResultSet is positioned before the next row, getXXX will fail
> +SQL State : null
> +Got expected exception Invalid operation to read at current cursor position.
>  calling deleteRow again w/o first positioning the ResultSet on the next row will fail
>  SQL State : 24000
>  Got expected exception Invalid cursor state - no current row.
>  Position the ResultSet with next()
>  Should be able to deletRow() on the current row now
> +Positive Test1b - request updatable resultset for forward only type resultset
> +column 1 on this row before updateInt is 1
> +column 1 on this row after updateInt is 234
> +column 2 on this row before updateString is aa                  
> +now updateRow on the row
> +Since after updateRow(), in embedded mode and Network Server mode using Derby Net Client, ResultSet is positioned before the next row, getXXX will fail
> +SQL State : null
> +Got expected exception Invalid operation to read at current cursor position.
> +calling updateRow again w/o first positioning the ResultSet on the next row will fail
> +SQL State : null
> +Got expected exception Invalid operation to update at current cursor position
> +Position the ResultSet with next()
> +Should be able to updateRow() on the current row now
> +Positive Test2 - even if no columns from table specified in the column list, we should be able to get updatable resultset
> +Will work in embedded mode because target table is not derived from the first column in the select list
> +Will not work in network server mode because it derives the target tabke from the first column in the select list
> +total number of rows in T1 
> +	 1
> +	 -
> +	{3}
> +column 1 on this row is 1
> +SQL State : 42X01
> +Got expected exception Syntax error: Encountered "WHERE" at line 1, column 14.
> +total number of rows in T1 after one deleteRow is 
> +	 1
> +	 -
> +	{3}
> +Positive Test3a - use prepared statement with concur updatable status to test deleteRow
> +requested TYPE_FORWARD_ONLY, CONCUR_UPDATABLE
> +got TYPE_FORWARD_ONLY? true
> +got CONCUR_UPDATABLE? true
> +column 1 on this row is 1
> +Since after deleteRow(), ResultSet is positioned before the next row, getXXX will fail
> +SQL State : null
> +Got expected exception Invalid operation to read at current cursor position.
> +calling deleteRow again w/o first positioning the ResultSet on the next row will fail
> +SQL State : 24000
> +Got expected exception Invalid cursor state - no current row.
> +Position the ResultSet with next()
> +Should be able to deletRow() on the current row now
> +Positive Test3b - use prepared statement with concur updatable status to test updateXXX
> +requested TYPE_FORWARD_ONLY, CONCUR_UPDATABLE
> +got TYPE_FORWARD_ONLY? true
> +got CONCUR_UPDATABLE? true
> +column 1 on this row is 1
> +column 1 on this row after updateInt is 5
> +Since after updateRow(), ResultSet is positioned before the next row, getXXX will fail
> +SQL State : null
> +Got expected exception Invalid operation to read at current cursor position.
> +calling updateRow/updateXXX again w/o first positioning the ResultSet on the next row will fail
> +SQL State : null
> +Got expected exception Invalid operation to update at current cursor position
> +SQL State : null
> +Got expected exception Invalid operation to update at current cursor position
> +SQL State : null
> +Got expected exception Invalid operation at current cursor position.
> +Position the ResultSet with next()
> +Should be able to cancelRowUpdates() on the current row now
> +Positive Test4 - use callable statement with concur updatable status
> +requested TYPE_FORWARD_ONLY, CONCUR_UPDATABLE
> +got TYPE_FORWARD_ONLY? true
> +got CONCUR_UPDATABLE? true
> +column 1 on this row is 1
> +Since after deleteRow(), ResultSet is positioned before the next row, getXXX will fail
> +SQL State : null
> +Got expected exception Invalid operation to read at current cursor position.
> +calling deleteRow again w/o first positioning the ResultSet on the next row will fail
> +SQL State : 24000
> +Got expected exception Invalid cursor state - no current row.
> +Position the ResultSet with next()
> +Should be able to deletRow() on the current row now
> +Positive Test5 - donot have to select primary key to get an updatable resultset
> +column 1 on this row is 1
> +now try to delete row when primary key is not selected for that row
> +Positive Test6a - For Forward Only resultsets, DatabaseMetaData will return false for ownDeletesAreVisible and deletesAreDetected
> +This is because, after deleteRow, we position the ResultSet before the next row. We don't make a hole for the deleted row and then stay on that deleted hole
> +ownDeletesAreVisible(ResultSet.TYPE_FORWARD_ONLY)? false
> +othersDeletesAreVisible(ResultSet.TYPE_FORWARD_ONLY)? true
> +deletesAreDetected(ResultSet.TYPE_FORWARD_ONLY)? false
> +The JDBC program should look at rowDeleted only if deletesAreDetected returns true
> +Since Derby returns false for detlesAreDetected for FORWARD_ONLY updatable resultset,the program should not rely on rs.rowDeleted() for FORWARD_ONLY updatable resultsets
> +Have this call to rs.rowDeleted() just to make sure the method does always return false? false
> +Have this call to rs.rowDeleted() just to make sure the method does always return false? false
> +Positive Test6b - For Forward Only resultsets, DatabaseMetaData will return false for ownUpdatesAreVisible and updatesAreDetected
> +This is because, after updateRow, we position the ResultSet before the next row
> +ownUpdatesAreVisible(ResultSet.TYPE_FORWARD_ONLY)? false
> +othersUpdatesAreVisible(ResultSet.TYPE_FORWARD_ONLY)? true
> +updatesAreDetected(ResultSet.TYPE_FORWARD_ONLY)? false
> +The JDBC program should look at rowUpdated only if updatesAreDetected returns true
> +Since Derby returns false for updatesAreDetected for FORWARD_ONLY updatable resultset,the program should not rely on rs.rowUpdated() for FORWARD_ONLY updatable resultsets
> +Have this call to rs.rowUpdated() just to make sure the method does always return false? false
> +Have this call to rs.rowUpdated() just to make sure the method does always return false? false
> +Positive Test7a - delete using updatable resultset api from a temporary table
> +following rows in temp table before deleteRow
> +	 C21,C22
> +	 --- ---
> +	{21,1}
> +	{22,1}
> +As expected, no rows in temp table after deleteRow
> +	 C21,C22
> +	 --- ---
> +Positive Test7b - update using updatable resultset api from a temporary table
> +following rows in temp table before deleteRow
> +	 C31,C32
> +	 --- ---
> +	{21,1}
> +	{22,1}
> +As expected, updated rows in temp table after updateRow
> +	 C31,C32
> +	 --- ---
> +	{123,1}
> +	{123,1}
> +Positive Test8a - change the name of the statement when the resultset is open and see if deleteRow still works
> +This test works in embedded mode since Derby can handle the change in the name of the statement with an open resultset
> +But it fails under Network Server mode because JCC and Derby Net Client do not allow statement name change when there an open resultset against it
> +change the cursor name(case sensitive name) with setCursorName and then try to deleteRow
> +change the cursor name one more time with setCursorName and then try to deleteRow
> +SQL State : null
> +Got expected exception Invalid operation: setCursorName() called when there are open ResultSet's on the Statement.
> +Positive Test8b - change the name of the statement when the resultset is open and see if updateRow still works
> +This test works in embedded mode since Derby can handle the change in the name of the statement with an open resultset
> +But it fails under Network Server mode because JCC and Derby Net Client do not allow statement name change when there an open resultset against it
> +change the cursor name one more time with setCursorName and then try to updateRow
> +change the cursor name(case sensitive name) with setCursorName and then try to updateRow
> +SQL State : null
> +Got expected exception Invalid operation: setCursorName() called when there are open ResultSet's on the Statement.
> +Positive Test9a - using correlation name for the table in the select sql works in embedded mode and Network Server using Derby Net Client driver
> +Correlation name for table does not work in Network Server mode (using JCC) because the drivers construct the delete sql with the correlation name rather than the base table name
> +column 1 on this row is 1
> +now try to deleteRow
> +PASS!!! passed in embedded mode
> +Positive Test9b - using correlation name for updatable columns is not allowed.
> +Table t1 has following rows
> +	 C1,C2
> +	 -- --
> +	{1,aa                  }
> +	{2,bb                  }
> +	{3,cc                  }
> +attempt to get an updatable resultset using correlation name for an updatable column
> +The sql is SELECT c1 as col1, c2 as col2 FROM t1 abcde FOR UPDATE of c1
> +SQL State : 42X42
> +Got expected exception Correlation name not allowed for column 'C1' because it is part of the FOR UPDATE list.
> +attempt to get an updatable resultset using correlation name for an readonly column. It should work
> +The sql is SELECT c1, c2 as col2 FROM t1 abcde FOR UPDATE of c1
> +Table t1 after updateRow has following rows
> +	 C1,C2
> +	 -- --
> +	{11,aa                  }
> +	{2,bb                  }
> +	{3,cc                  }
> +Positive Test9c - try to updateXXX on a readonly column. Should get error
> +SQL State : null
> +Got expected exception Column not updatable
> +attempt to get an updatable resultset using correlation name for an readonly column. It should work
> +The sql is SELECT c1, c2 as col2 FROM t1 abcde FOR UPDATE of c1
> +Table t1 after updateRow has following rows
> +	 C1,C2
> +	 -- --
> +	{11,aa                  }
> +	{2,bb                  }
> +	{3,cc                  }
> +Positive Test9d - try to updateXXX on a readonly column with correlation name. Should get error
> +SQL State : null
> +Got expected exception Column not updatable
> +Table t1 has following rows
> +	 C1,C2
> +	 -- --
> +	{1,aa                  }
> +	{2,bb                  }
> +	{3,cc                  }
> +Positive Test10 - 2 updatable resultsets going against the same table, will they conflict?
> +delete using first resultset
> +attempt to send deleteRow on the same row through a different resultset should throw an exception
> +SQL State : XCL08
> +Got expected exception Cursor 'SQL_CURLH000C51' is not on a row.
> +Move to next row in the 2nd resultset and then delete using the second resultset
> +Positive Test11 - setting the fetch size to > 1 will be ignored by updatable resultset. Same as updatable cursors
> +Notice the Fetch Size in run time statistics output.
> +1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
                                      
> +-----
> +Statement Name: 
> +	SQL_CURLH000C54
> +Statement Text: 
> +	SELECT * FROM t1 FOR UPDATE of c1
> +Parse Time: 0
> +Bind Time: 0
> +Optimize Time: 0
> +Generate Time: 0
> +Compile Time: 0
> +Execute Time: 0
> +Begin Compilation Timestamp : null
> +End Compilation Timestamp : null
> +Begin Execution Timestamp : null
> +End Execution Timestamp : null
> +Statement Execution Plan Text: 
> +Table Scan ResultSet for T1 at read committed isolation level using exclusive row locking chosen by the optimizer
> +Number of opens = 1
> +Rows seen = 0
> +Rows filtered = 0
> +Fetch Size = 1
> +	constructor time (milliseconds) = 0
> +	open time (milliseconds) = 0
> +	next time (milliseconds) = 0
> +	close time (milliseconds) = 0
> +scan information: 
> +	Bit set of columns fetched=All
> +	Number of columns fetched=2
> +	Number of pages visited=0
> +	Number of rows qualified=0
> +	Number of rows visited=0
> +	Scan type=heap
> +	start position: 
> +null	stop position: 
> +null	qualifiers:
> +None
> +statement's fetch size is 200
> +Positive Test12a - make sure delete trigger gets fired when deleteRow is issued
> +Verify that before delete trigger got fired, row count is 0 in deleteTriggerInsertIntoThisTable
> +	 1
> +	 -
> +	{0}
> +column 1 on this row is 1
> +now try to delete row and make sure that trigger got fired
> +Verify that delete trigger got fired by verifying the row count to be 1 in deleteTriggerInsertIntoThisTable
> +	 1
> +	 -
> +	{1}
> +Positive Test12b - make sure update trigger gets fired when updateRow is issued
> +Verify that before update trigger got fired, row count is 0 in updateTriggerInsertIntoThisTable
> +	 1
> +	 -
> +	{0}
> +column 1 on this row is 1
> +now try to update row and make sure that trigger got fired
> +Verify that update trigger got fired by verifying the row count to be 1 in updateTriggerInsertIntoThisTable
> +	 1
> +	 -
> +	{1}
> +Positive Test13a - Another test case for delete trigger
> +column 1 on this row is 1
> +this delete row will fire the delete trigger which will delete all the rows from the table and from the resultset
> +SQL State : null
> +Got expected exception Invalid operation: result set closed
> +Verify that delete trigger got fired by verifying the row count to be 0 in table1WithTriggers
> +	 1
> +	 -
> +	{0}
> +Positive Test13b - Another test case for update trigger
> +Look at the current contents of table2WithTriggers
> +	 C1,C2
> +	 -- --
> +	{1,1}
> +	{2,2}
> +	{3,3}
> +	{4,4}
> +column 1 on this row is 2
> +this update row will fire the update trigger which will update all the rows in the table to have c1=1 and hence no more rows will qualify for the resultset
> +SQL State : null
> +Got expected exception Invalid operation: result set closed
> +Verify that update trigger got fired by verifying that all column c1s have value 1 in table2WithTriggers
> +	 C1,C2
> +	 -- --
> +	{1,1}
> +	{1,2}
> +	{1,3}
> +	{1,4}
> +Positive Test14a - make sure self referential delete cascade works when deleteRow is issued
> +	 C1,C2
> +	 -- --
> +	{e1,null}
> +	{e2,e1}
> +	{e3,e2}
> +	{e4,e3}
> +column 1 on this row is e1
> +this delete row will cause the delete cascade constraint to delete all the rows from the table and from the resultset
> +SQL State : null
> +Got expected exception Invalid operation: result set closed
> +Verify that delete trigger got fired by verifying the row count to be 0 in selfReferencingT1
> +	 1
> +	 -
> +	{0}
> +Positive Test14b - make sure self referential update restrict works when updateRow is issued
> +	 C1,C2
> +	 -- --
> +	{e1,null}
> +	{e2,e1}
> +	{e3,e2}
> +	{e4,e3}
> +column 1 on this row is e1
> +update row should fail because cascade constraint is update restrict
> +SQL State : 23503
> +Got expected exception UPDATE on table 'SELFREFERENCINGT2' caused a violation of foreign key constraint 'MANAGES2' for key (e1).  The statement has been rolled back.
> +Positive Test15 - With autocommit off, attempt to drop a table when there is an open updatable resultset on it
> +Opened an updatable resultset. Now trying to drop that table through another Statement
> +SQL State : X0X95
> +Got expected exception Operation 'DROP TABLE' cannot be performed on object 'T1' because there is an open ResultSet dependent on that object.
> +Since autocommit is off, the drop table exception will NOT result in a runtime rollback and hence updatable resultset object is still open
> +Positive Test16a - Do deleteRow within a transaction and then rollback the transaction
> +Verify that before delete trigger got fired, row count is 0 in deleteTriggerInsertIntoThisTable
> +	 1
> +	 -
> +	{0}
> +Verify that before deleteRow, row count is 4 in table0WithTriggers
> +	 1
> +	 -
> +	{4}
> +column 1 on this row is 1
> +now try to delete row and make sure that trigger got fired
> +Verify that delete trigger got fired by verifying the row count to be 1 in deleteTriggerInsertIntoThisTable
> +	 1
> +	 -
> +	{1}
> +Verify that deleteRow in transaction, row count is 3 in table0WithTriggers
> +	 1
> +	 -
> +	{3}
> +Verify that after rollback, row count is back to 0 in deleteTriggerInsertIntoThisTable
> +	 1
> +	 -
> +	{0}
> +Verify that after rollback, row count is back to 4 in table0WithTriggers
> +	 1
> +	 -
> +	{4}
> +Positive Test16b - Do updateRow within a transaction and then rollback the transaction
> +Verify that before update trigger got fired, row count is 0 in updateTriggerInsertIntoThisTable
> +	 1
> +	 -
> +	{0}
> +Look at the data in table0WithTriggers before trigger gets fired
> +	 C1,C2
> +	 -- --
> +	{1,1}
> +	{2,2}
> +	{3,3}
> +	{4,4}
> +column 1 on this row is 1
> +now try to update row and make sure that trigger got fired
> +Verify that update trigger got fired by verifying the row count to be 1 in updateTriggerInsertIntoThisTable
> +	 1
> +	 -
> +	{1}
> +Verify that new data in table0WithTriggers
> +	 C1,C2
> +	 -- --
> +	{123,1}
> +	{2,2}
> +	{3,3}
> +	{4,4}
> +Verify that after rollback, row count is back to 0 in updateTriggerInsertIntoThisTable
> +	 1
> +	 -
> +	{0}
> +Verify that after rollback, table0WithTriggers is back to its original contents
> +	 C1,C2
> +	 -- --
> +	{1,1}
> +	{2,2}
> +	{3,3}
> +	{4,4}
> +Positive Test17 - After deleteRow, resultset is positioned before the next row
> +getXXX right after deleteRow will fail because resultset is not positioned on a row, instead it is right before the next row
> +SQL State : null
> +Got expected exception Invalid operation to read at current cursor position.
> +Positive Test18 - Test cancelRowUpdates method as the first updatable ResultSet api on a read-only resultset
> +SQL State : null
> +Got expected exception This method cannot be invoked while the cursor is on the insert row or if this ResultSet object has a concurrency of CONCUR_READ_ONLY.
> +Positive Test19 - Test updateRow method as the first updatable ResultSet api on a read-only resultset
> +  Got expected exception : This method cannot be invoked while the cursor is on the insert row or if the concurrency of this ResultSet object is CONCUR_READ_ONLY.
> +Positive Test20 - Test updateXXX methods as the first updatable ResultSet api on a read-only resultset
> +  Test updateShort on a readonly resultset
> +  Using column position as first parameter to updateShort
> +  Got expected exception : ResultSet is not updatable.
> +  Using column name as first parameter to updateShort
> +  Got expected exception : ResultSet is not updatable.
> +  Test updateInt on a readonly resultset
> +  Using column position as first parameter to updateInt
> +  Got expected exception : ResultSet is not updatable.
> +  Using column name as first parameter to updateInt
> +  Got expected exception : ResultSet is not updatable.
> +  Test updateLong on a readonly resultset
> +  Using column position as first parameter to updateLong
> +  Got expected exception : ResultSet is not updatable.
> +  Using column name as first parameter to updateLong
> +  Got expected exception : ResultSet is not updatable.
> +  Test updateBigDecimal on a readonly resultset
> +  Using column position as first parameter to updateBigDecimal
> +  Got expected exception : ResultSet is not updatable.
> +  Using column name as first parameter to updateBigDecimal
> +  Got expected exception : ResultSet is not updatable.
> +  Test updateFloat on a readonly resultset
> +  Using column position as first parameter to updateFloat
> +  Got expected exception : ResultSet is not updatable.
> +  Using column name as first parameter to updateFloat
> +  Got expected exception : ResultSet is not updatable.
> +  Test updateDouble on a readonly resultset
> +  Using column position as first parameter to updateDouble
> +  Got expected exception : ResultSet is not updatable.
> +  Using column name as first parameter to updateDouble
> +  Got expected exception : ResultSet is not updatable.
> +  Test updateString on a readonly resultset
> +  Using column position as first parameter to updateString
> +  Got expected exception : ResultSet is not updatable.
> +  Using column name as first parameter to updateString
> +  Got expected exception : ResultSet is not updatable.
> +  Test updateAsciiStream on a readonly resultset
> +  Using column position as first parameter to updateAsciiStream
> +  Got expected exception : ResultSet is not updatable.
> +  Using column name as first parameter to updateAsciiStream
> +  Got expected exception : ResultSet is not updatable.
> +  Test updateCharacterStream on a readonly resultset
> +  Using column position as first parameter to updateCharacterStream
> +  Got expected exception : ResultSet is not updatable.
> +  Using column name as first parameter to updateCharacterStream
> +  Got expected exception : ResultSet is not updatable.
> +  Test updateByte on a readonly resultset
> +  Using column position as first parameter to updateByte
> +  Got expected exception : ResultSet is not updatable.
> +  Using column name as first parameter to updateByte
> +  Got expected exception : ResultSet is not updatable.
> +  Test updateBytes on a readonly resultset
> +  Using column position as first parameter to updateBytes
> +  Got expected exception : ResultSet is not updatable.
> +  Using column name as first parameter to updateBytes
> +  Got expected exception : ResultSet is not updatable.
> +  Test updateBinaryStream on a readonly resultset
> +  Using column position as first parameter to updateBinaryStream
> +  Got expected exception : ResultSet is not updatable.
> +  Using column name as first parameter to updateBinaryStream
> +  Got expected exception : ResultSet is not updatable.
> +  Test updateClob on a readonly resultset
> +  Using column position as first parameter to updateClob
> +  Got expected exception : JDBC 3 method called - not yet supported
> +  Using column name as first parameter to updateClob
> +  Got expected exception : JDBC 3 method called - not yet supported
> +  Test updateDate on a readonly resultset
> +  Using column position as first parameter to updateDate
> +  Got expected exception : ResultSet is not updatable.
> +  Using column name as first parameter to updateDate
> +  Got expected exception : ResultSet is not updatable.
> +  Test updateTime on a readonly resultset
> +  Using column position as first parameter to updateTime
> +  Got expected exception : ResultSet is not updatable.
> +  Using column name as first parameter to updateTime
> +  Got expected exception : ResultSet is not updatable.
> +  Test updateTimestamp on a readonly resultset
> +  Using column position as first parameter to updateTimestamp
> +  Got expected exception : ResultSet is not updatable.
> +  Using column name as first parameter to updateTimestamp
> +  Got expected exception : ResultSet is not updatable.
> +  Test updateBlob on a readonly resultset
> +  Using column position as first parameter to updateBlob
> +  Got expected exception : JDBC 3 method called - not yet supported
> +  Using column name as first parameter to updateBlob
> +  Got expected exception : JDBC 3 method called - not yet supported
> +  Test updateBoolean on a readonly resultset
> +  Using column position as first parameter to updateBoolean
> +  Got expected exception : ResultSet is not updatable.
> +  Using column name as first parameter to updateBoolean
> +  Got expected exception : ResultSet is not updatable.
> +  Test updateNull on a readonly resultset
> +  Using column position as first parameter to updateNull
> +  Got expected exception : ResultSet is not updatable.
> +  Using column name as first parameter to updateNull
> +  Got expected exception : ResultSet is not updatable.
> +  Test updateArray on a readonly resultset
> +  Using column position as first parameter to updateArray
> +  Got expected exception : JDBC 3 method called - not yet supported
> +  Using column name as first parameter to updateArray
> +  Got expected exception : JDBC 3 method called - not yet supported
> +  Test updateRef on a readonly resultset
> +  Using column position as first parameter to updateRef
> +  Got expected exception : JDBC 3 method called - not yet supported
> +  Using column name as first parameter to updateRef
> +  Got expected exception : JDBC 3 method called - not yet supported
> +Positive Test21 - Test all updateXXX(excluding updateObject) methods on all the supported sql datatypes
> +Next datatype to test is SMALLINT
> +  Testing updateShort on SQL type SMALLINT
> +    Using column position as first parameter to updateShort
> +    Using column name as first parameter to updateShort
> +  Testing updateInt on SQL type SMALLINT
> +    Using column position as first parameter to updateInt
> +    Using column name as first parameter to updateInt
> +  Testing updateLong on SQL type SMALLINT
> +    Using column position as first parameter to updateLong
> +    Using column name as first parameter to updateLong
> +  Testing updateBigDecimal on SQL type SMALLINT
> +    Using column position as first parameter to updateBigDecimal
> +    Using column name as first parameter to updateBigDecimal
> +  Testing updateFloat on SQL type SMALLINT
> +    Using column position as first parameter to updateFloat
> +    Using column name as first parameter to updateFloat
> +  Testing updateDouble on SQL type SMALLINT
> +    Using column position as first parameter to updateDouble
> +    Using column name as first parameter to updateDouble
> +  Testing updateString on SQL type SMALLINT
> +    Using column position as first parameter to updateString
> +      Got expected exception : Invalid data conversion: Parameter instance 1992                                                         is invalid for requested conversion.
> +    Using column name as first parameter to updateString
> +      Got expected exception : Invalid data conversion: Parameter instance 1992                                                         is invalid for requested conversion.
> +  Testing updateAsciiStream on SQL type SMALLINT
> +    Using column position as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateCharacterStream on SQL type SMALLINT
> +    Using column position as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateByte on SQL type SMALLINT
> +    Using column position as first parameter to updateByte
> +    Using column name as first parameter to updateByte
> +  Testing updateBytes on SQL type SMALLINT
> +    Using column position as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +  Testing updateBinaryStream on SQL type SMALLINT
> +    Using column position as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateClob on SQL type SMALLINT
> +    Using column position as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateDate on SQL type SMALLINT
> +    Using column position as first parameter to updateDate
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateDate
> +      Got expected exception : Illegal Conversion
> +  Testing updateTime on SQL type SMALLINT
> +    Using column position as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +  Testing updateTimestamp on SQL type SMALLINT
> +    Using column position as first parameter to updateTimestamp
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateTimestamp
> +      Got expected exception : Illegal Conversion
> +  Testing updateBlob on SQL type SMALLINT
> +    Using column position as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateBoolean on SQL type SMALLINT
> +    Using column position as first parameter to updateBoolean
> +    Using column name as first parameter to updateBoolean
> +  Testing updateNull on SQL type SMALLINT
> +    Using column position as first parameter to updateNull
> +    Using column name as first parameter to updateNull
> +  Testing updateArray on SQL type SMALLINT
> +    Using column position as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateRef on SQL type SMALLINT
> +    Using column position as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +Next datatype to test is INTEGER
> +  Testing updateShort on SQL type INTEGER
> +    Using column position as first parameter to updateShort
> +    Using column name as first parameter to updateShort
> +  Testing updateInt on SQL type INTEGER
> +    Using column position as first parameter to updateInt
> +    Using column name as first parameter to updateInt
> +  Testing updateLong on SQL type INTEGER
> +    Using column position as first parameter to updateLong
> +    Using column name as first parameter to updateLong
> +  Testing updateBigDecimal on SQL type INTEGER
> +    Using column position as first parameter to updateBigDecimal
> +    Using column name as first parameter to updateBigDecimal
> +  Testing updateFloat on SQL type INTEGER
> +    Using column position as first parameter to updateFloat
> +    Using column name as first parameter to updateFloat
> +  Testing updateDouble on SQL type INTEGER
> +    Using column position as first parameter to updateDouble
> +    Using column name as first parameter to updateDouble
> +  Testing updateString on SQL type INTEGER
> +    Using column position as first parameter to updateString
> +      Got expected exception : Invalid data conversion: Parameter instance 1992                                                         is invalid for requested conversion.
> +    Using column name as first parameter to updateString
> +      Got expected exception : Invalid data conversion: Parameter instance 1992                                                         is invalid for requested conversion.
> +  Testing updateAsciiStream on SQL type INTEGER
> +    Using column position as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateCharacterStream on SQL type INTEGER
> +    Using column position as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateByte on SQL type INTEGER
> +    Using column position as first parameter to updateByte
> +    Using column name as first parameter to updateByte
> +  Testing updateBytes on SQL type INTEGER
> +    Using column position as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +  Testing updateBinaryStream on SQL type INTEGER
> +    Using column position as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateClob on SQL type INTEGER
> +    Using column position as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateDate on SQL type INTEGER
> +    Using column position as first parameter to updateDate
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateDate
> +      Got expected exception : Illegal Conversion
> +  Testing updateTime on SQL type INTEGER
> +    Using column position as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +  Testing updateTimestamp on SQL type INTEGER
> +    Using column position as first parameter to updateTimestamp
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateTimestamp
> +      Got expected exception : Illegal Conversion
> +  Testing updateBlob on SQL type INTEGER
> +    Using column position as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateBoolean on SQL type INTEGER
> +    Using column position as first parameter to updateBoolean
> +    Using column name as first parameter to updateBoolean
> +  Testing updateNull on SQL type INTEGER
> +    Using column position as first parameter to updateNull
> +    Using column name as first parameter to updateNull
> +  Testing updateArray on SQL type INTEGER
> +    Using column position as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateRef on SQL type INTEGER
> +    Using column position as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +Next datatype to test is BIGINT
> +  Testing updateShort on SQL type BIGINT
> +    Using column position as first parameter to updateShort
> +    Using column name as first parameter to updateShort
> +  Testing updateInt on SQL type BIGINT
> +    Using column position as first parameter to updateInt
> +    Using column name as first parameter to updateInt
> +  Testing updateLong on SQL type BIGINT
> +    Using column position as first parameter to updateLong
> +    Using column name as first parameter to updateLong
> +  Testing updateBigDecimal on SQL type BIGINT
> +    Using column position as first parameter to updateBigDecimal
> +    Using column name as first parameter to updateBigDecimal
> +  Testing updateFloat on SQL type BIGINT
> +    Using column position as first parameter to updateFloat
> +    Using column name as first parameter to updateFloat
> +  Testing updateDouble on SQL type BIGINT
> +    Using column position as first parameter to updateDouble
> +    Using column name as first parameter to updateDouble
> +  Testing updateString on SQL type BIGINT
> +    Using column position as first parameter to updateString
> +      Got expected exception : Invalid data conversion: Parameter instance 1992                                                         is invalid for requested conversion.
> +    Using column name as first parameter to updateString
> +      Got expected exception : Invalid data conversion: Parameter instance 1992                                                         is invalid for requested conversion.
> +  Testing updateAsciiStream on SQL type BIGINT
> +    Using column position as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateCharacterStream on SQL type BIGINT
> +    Using column position as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateByte on SQL type BIGINT
> +    Using column position as first parameter to updateByte
> +    Using column name as first parameter to updateByte
> +  Testing updateBytes on SQL type BIGINT
> +    Using column position as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +  Testing updateBinaryStream on SQL type BIGINT
> +    Using column position as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateClob on SQL type BIGINT
> +    Using column position as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateDate on SQL type BIGINT
> +    Using column position as first parameter to updateDate
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateDate
> +      Got expected exception : Illegal Conversion
> +  Testing updateTime on SQL type BIGINT
> +    Using column position as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +  Testing updateTimestamp on SQL type BIGINT
> +    Using column position as first parameter to updateTimestamp
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateTimestamp
> +      Got expected exception : Illegal Conversion
> +  Testing updateBlob on SQL type BIGINT
> +    Using column position as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateBoolean on SQL type BIGINT
> +    Using column position as first parameter to updateBoolean
> +    Using column name as first parameter to updateBoolean
> +  Testing updateNull on SQL type BIGINT
> +    Using column position as first parameter to updateNull
> +    Using column name as first parameter to updateNull
> +  Testing updateArray on SQL type BIGINT
> +    Using column position as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateRef on SQL type BIGINT
> +    Using column position as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +Next datatype to test is DECIMAL(10,5)
> +  Testing updateShort on SQL type DECIMAL(10,5)
> +    Using column position as first parameter to updateShort
> +    Using column name as first parameter to updateShort
> +  Testing updateInt on SQL type DECIMAL(10,5)
> +    Using column position as first parameter to updateInt
> +    Using column name as first parameter to updateInt
> +  Testing updateLong on SQL type DECIMAL(10,5)
> +    Using column position as first parameter to updateLong
> +    Using column name as first parameter to updateLong
> +  Testing updateBigDecimal on SQL type DECIMAL(10,5)
> +    Using column position as first parameter to updateBigDecimal
> +    Using column name as first parameter to updateBigDecimal
> +  Testing updateFloat on SQL type DECIMAL(10,5)
> +    Using column position as first parameter to updateFloat
> +    Using column name as first parameter to updateFloat
> +  Testing updateDouble on SQL type DECIMAL(10,5)
> +    Using column position as first parameter to updateDouble
> +    Using column name as first parameter to updateDouble
> +  Testing updateString on SQL type DECIMAL(10,5)
> +    Using column position as first parameter to updateString
> +      Got expected exception : Invalid data conversion: Parameter instance 1992                                                         is invalid for requested conversion.
> +    Using column name as first parameter to updateString
> +      Got expected exception : Invalid data conversion: Parameter instance 1992                                                         is invalid for requested conversion.
> +  Testing updateAsciiStream on SQL type DECIMAL(10,5)
> +    Using column position as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateCharacterStream on SQL type DECIMAL(10,5)
> +    Using column position as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateByte on SQL type DECIMAL(10,5)
> +    Using column position as first parameter to updateByte
> +    Using column name as first parameter to updateByte
> +  Testing updateBytes on SQL type DECIMAL(10,5)
> +    Using column position as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +  Testing updateBinaryStream on SQL type DECIMAL(10,5)
> +    Using column position as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateClob on SQL type DECIMAL(10,5)
> +    Using column position as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateDate on SQL type DECIMAL(10,5)
> +    Using column position as first parameter to updateDate
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateDate
> +      Got expected exception : Illegal Conversion
> +  Testing updateTime on SQL type DECIMAL(10,5)
> +    Using column position as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +  Testing updateTimestamp on SQL type DECIMAL(10,5)
> +    Using column position as first parameter to updateTimestamp
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateTimestamp
> +      Got expected exception : Illegal Conversion
> +  Testing updateBlob on SQL type DECIMAL(10,5)
> +    Using column position as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateBoolean on SQL type DECIMAL(10,5)
> +    Using column position as first parameter to updateBoolean
> +    Using column name as first parameter to updateBoolean
> +  Testing updateNull on SQL type DECIMAL(10,5)
> +    Using column position as first parameter to updateNull
> +    Using column name as first parameter to updateNull
> +  Testing updateArray on SQL type DECIMAL(10,5)
> +    Using column position as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateRef on SQL type DECIMAL(10,5)
> +    Using column position as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +Next datatype to test is REAL
> +  Testing updateShort on SQL type REAL
> +    Using column position as first parameter to updateShort
> +    Using column name as first parameter to updateShort
> +  Testing updateInt on SQL type REAL
> +    Using column position as first parameter to updateInt
> +    Using column name as first parameter to updateInt
> +  Testing updateLong on SQL type REAL
> +    Using column position as first parameter to updateLong
> +    Using column name as first parameter to updateLong
> +  Testing updateBigDecimal on SQL type REAL
> +    Using column position as first parameter to updateBigDecimal
> +    Using column name as first parameter to updateBigDecimal
> +  Testing updateFloat on SQL type REAL
> +    Using column position as first parameter to updateFloat
> +    Using column name as first parameter to updateFloat
> +  Testing updateDouble on SQL type REAL
> +    Using column position as first parameter to updateDouble
> +    Using column name as first parameter to updateDouble
> +  Testing updateString on SQL type REAL
> +    Using column position as first parameter to updateString
> +    Using column name as first parameter to updateString
> +  Testing updateAsciiStream on SQL type REAL
> +    Using column position as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateCharacterStream on SQL type REAL
> +    Using column position as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateByte on SQL type REAL
> +    Using column position as first parameter to updateByte
> +    Using column name as first parameter to updateByte
> +  Testing updateBytes on SQL type REAL
> +    Using column position as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +  Testing updateBinaryStream on SQL type REAL
> +    Using column position as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateClob on SQL type REAL
> +    Using column position as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateDate on SQL type REAL
> +    Using column position as first parameter to updateDate
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateDate
> +      Got expected exception : Illegal Conversion
> +  Testing updateTime on SQL type REAL
> +    Using column position as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +  Testing updateTimestamp on SQL type REAL
> +    Using column position as first parameter to updateTimestamp
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateTimestamp
> +      Got expected exception : Illegal Conversion
> +  Testing updateBlob on SQL type REAL
> +    Using column position as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateBoolean on SQL type REAL
> +    Using column position as first parameter to updateBoolean
> +    Using column name as first parameter to updateBoolean
> +  Testing updateNull on SQL type REAL
> +    Using column position as first parameter to updateNull
> +    Using column name as first parameter to updateNull
> +  Testing updateArray on SQL type REAL
> +    Using column position as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateRef on SQL type REAL
> +    Using column position as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +Next datatype to test is DOUBLE
> +  Testing updateShort on SQL type DOUBLE
> +    Using column position as first parameter to updateShort
> +    Using column name as first parameter to updateShort
> +  Testing updateInt on SQL type DOUBLE
> +    Using column position as first parameter to updateInt
> +    Using column name as first parameter to updateInt
> +  Testing updateLong on SQL type DOUBLE
> +    Using column position as first parameter to updateLong
> +    Using column name as first parameter to updateLong
> +  Testing updateBigDecimal on SQL type DOUBLE
> +    Using column position as first parameter to updateBigDecimal
> +    Using column name as first parameter to updateBigDecimal
> +  Testing updateFloat on SQL type DOUBLE
> +    Using column position as first parameter to updateFloat
> +    Using column name as first parameter to updateFloat
> +  Testing updateDouble on SQL type DOUBLE
> +    Using column position as first parameter to updateDouble
> +    Using column name as first parameter to updateDouble
> +  Testing updateString on SQL type DOUBLE
> +    Using column position as first parameter to updateString
> +    Using column name as first parameter to updateString
> +  Testing updateAsciiStream on SQL type DOUBLE
> +    Using column position as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateCharacterStream on SQL type DOUBLE
> +    Using column position as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateByte on SQL type DOUBLE
> +    Using column position as first parameter to updateByte
> +    Using column name as first parameter to updateByte
> +  Testing updateBytes on SQL type DOUBLE
> +    Using column position as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +  Testing updateBinaryStream on SQL type DOUBLE
> +    Using column position as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateClob on SQL type DOUBLE
> +    Using column position as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateDate on SQL type DOUBLE
> +    Using column position as first parameter to updateDate
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateDate
> +      Got expected exception : Illegal Conversion
> +  Testing updateTime on SQL type DOUBLE
> +    Using column position as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +  Testing updateTimestamp on SQL type DOUBLE
> +    Using column position as first parameter to updateTimestamp
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateTimestamp
> +      Got expected exception : Illegal Conversion
> +  Testing updateBlob on SQL type DOUBLE
> +    Using column position as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateBoolean on SQL type DOUBLE
> +    Using column position as first parameter to updateBoolean
> +    Using column name as first parameter to updateBoolean
> +  Testing updateNull on SQL type DOUBLE
> +    Using column position as first parameter to updateNull
> +    Using column name as first parameter to updateNull
> +  Testing updateArray on SQL type DOUBLE
> +    Using column position as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateRef on SQL type DOUBLE
> +    Using column position as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +Next datatype to test is CHAR(60)
> +  Testing updateShort on SQL type CHAR(60)
> +    Using column position as first parameter to updateShort
> +    Using column name as first parameter to updateShort
> +  Testing updateInt on SQL type CHAR(60)
> +    Using column position as first parameter to updateInt
> +    Using column name as first parameter to updateInt
> +  Testing updateLong on SQL type CHAR(60)
> +    Using column position as first parameter to updateLong
> +    Using column name as first parameter to updateLong
> +  Testing updateBigDecimal on SQL type CHAR(60)
> +    Using column position as first parameter to updateBigDecimal
> +    Using column name as first parameter to updateBigDecimal
> +  Testing updateFloat on SQL type CHAR(60)
> +    Using column position as first parameter to updateFloat
> +    Using column name as first parameter to updateFloat
> +  Testing updateDouble on SQL type CHAR(60)
> +    Using column position as first parameter to updateDouble
> +    Using column name as first parameter to updateDouble
> +  Testing updateString on SQL type CHAR(60)
> +    Using column position as first parameter to updateString
> +    Using column name as first parameter to updateString
> +  Testing updateAsciiStream on SQL type CHAR(60)
> +    Using column position as first parameter to updateAsciiStream
> +    Using column name as first parameter to updateAsciiStream
> +  Testing updateCharacterStream on SQL type CHAR(60)
> +    Using column position as first parameter to updateCharacterStream
> +    Using column name as first parameter to updateCharacterStream
> +  Testing updateByte on SQL type CHAR(60)
> +    Using column position as first parameter to updateByte
> +    Using column name as first parameter to updateByte
> +  Testing updateBytes on SQL type CHAR(60)
> +    Using column position as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +  Testing updateBinaryStream on SQL type CHAR(60)
> +    Using column position as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateClob on SQL type CHAR(60)
> +    Using column position as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateDate on SQL type CHAR(60)
> +    Using column position as first parameter to updateDate
> +    Using column name as first parameter to updateDate
> +  Testing updateTime on SQL type CHAR(60)
> +    Using column position as first parameter to updateTime
> +    Using column name as first parameter to updateTime
> +  Testing updateTimestamp on SQL type CHAR(60)
> +    Using column position as first parameter to updateTimestamp
> +    Using column name as first parameter to updateTimestamp
> +  Testing updateBlob on SQL type CHAR(60)
> +    Using column position as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateBoolean on SQL type CHAR(60)
> +    Using column position as first parameter to updateBoolean
> +    Using column name as first parameter to updateBoolean
> +  Testing updateNull on SQL type CHAR(60)
> +    Using column position as first parameter to updateNull
> +    Using column name as first parameter to updateNull
> +  Testing updateArray on SQL type CHAR(60)
> +    Using column position as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateRef on SQL type CHAR(60)
> +    Using column position as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +Next datatype to test is VARCHAR(60)
> +  Testing updateShort on SQL type VARCHAR(60)
> +    Using column position as first parameter to updateShort
> +    Using column name as first parameter to updateShort
> +  Testing updateInt on SQL type VARCHAR(60)
> +    Using column position as first parameter to updateInt
> +    Using column name as first parameter to updateInt
> +  Testing updateLong on SQL type VARCHAR(60)
> +    Using column position as first parameter to updateLong
> +    Using column name as first parameter to updateLong
> +  Testing updateBigDecimal on SQL type VARCHAR(60)
> +    Using column position as first parameter to updateBigDecimal
> +    Using column name as first parameter to updateBigDecimal
> +  Testing updateFloat on SQL type VARCHAR(60)
> +    Using column position as first parameter to updateFloat
> +    Using column name as first parameter to updateFloat
> +  Testing updateDouble on SQL type VARCHAR(60)
> +    Using column position as first parameter to updateDouble
> +    Using column name as first parameter to updateDouble
> +  Testing updateString on SQL type VARCHAR(60)
> +    Using column position as first parameter to updateString
> +    Using column name as first parameter to updateString
> +  Testing updateAsciiStream on SQL type VARCHAR(60)
> +    Using column position as first parameter to updateAsciiStream
> +    Using column name as first parameter to updateAsciiStream
> +  Testing updateCharacterStream on SQL type VARCHAR(60)
> +    Using column position as first parameter to updateCharacterStream
> +    Using column name as first parameter to updateCharacterStream
> +  Testing updateByte on SQL type VARCHAR(60)
> +    Using column position as first parameter to updateByte
> +    Using column name as first parameter to updateByte
> +  Testing updateBytes on SQL type VARCHAR(60)
> +    Using column position as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +  Testing updateBinaryStream on SQL type VARCHAR(60)
> +    Using column position as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateClob on SQL type VARCHAR(60)
> +    Using column position as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateDate on SQL type VARCHAR(60)
> +    Using column position as first parameter to updateDate
> +    Using column name as first parameter to updateDate
> +  Testing updateTime on SQL type VARCHAR(60)
> +    Using column position as first parameter to updateTime
> +    Using column name as first parameter to updateTime
> +  Testing updateTimestamp on SQL type VARCHAR(60)
> +    Using column position as first parameter to updateTimestamp
> +    Using column name as first parameter to updateTimestamp
> +  Testing updateBlob on SQL type VARCHAR(60)
> +    Using column position as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateBoolean on SQL type VARCHAR(60)
> +    Using column position as first parameter to updateBoolean
> +    Using column name as first parameter to updateBoolean
> +  Testing updateNull on SQL type VARCHAR(60)
> +    Using column position as first parameter to updateNull
> +    Using column name as first parameter to updateNull
> +  Testing updateArray on SQL type VARCHAR(60)
> +    Using column position as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateRef on SQL type VARCHAR(60)
> +    Using column position as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +Next datatype to test is LONG VARCHAR
> +  Testing updateShort on SQL type LONG VARCHAR
> +    Using column position as first parameter to updateShort
> +    Using column name as first parameter to updateShort
> +  Testing updateInt on SQL type LONG VARCHAR
> +    Using column position as first parameter to updateInt
> +    Using column name as first parameter to updateInt
> +  Testing updateLong on SQL type LONG VARCHAR
> +    Using column position as first parameter to updateLong
> +    Using column name as first parameter to updateLong
> +  Testing updateBigDecimal on SQL type LONG VARCHAR
> +    Using column position as first parameter to updateBigDecimal
> +    Using column name as first parameter to updateBigDecimal
> +  Testing updateFloat on SQL type LONG VARCHAR
> +    Using column position as first parameter to updateFloat
> +    Using column name as first parameter to updateFloat
> +  Testing updateDouble on SQL type LONG VARCHAR
> +    Using column position as first parameter to updateDouble
> +    Using column name as first parameter to updateDouble
> +  Testing updateString on SQL type LONG VARCHAR
> +    Using column position as first parameter to updateString
> +    Using column name as first parameter to updateString
> +  Testing updateAsciiStream on SQL type LONG VARCHAR
> +    Using column position as first parameter to updateAsciiStream
> +    Using column name as first parameter to updateAsciiStream
> +  Testing updateCharacterStream on SQL type LONG VARCHAR
> +    Using column position as first parameter to updateCharacterStream
> +    Using column name as first parameter to updateCharacterStream
> +  Testing updateByte on SQL type LONG VARCHAR
> +    Using column position as first parameter to updateByte
> +    Using column name as first parameter to updateByte
> +  Testing updateBytes on SQL type LONG VARCHAR
> +    Using column position as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +  Testing updateBinaryStream on SQL type LONG VARCHAR
> +    Using column position as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateClob on SQL type LONG VARCHAR
> +    Using column position as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateDate on SQL type LONG VARCHAR
> +    Using column position as first parameter to updateDate
> +    Using column name as first parameter to updateDate
> +  Testing updateTime on SQL type LONG VARCHAR
> +    Using column position as first parameter to updateTime
> +    Using column name as first parameter to updateTime
> +  Testing updateTimestamp on SQL type LONG VARCHAR
> +    Using column position as first parameter to updateTimestamp
> +    Using column name as first parameter to updateTimestamp
> +  Testing updateBlob on SQL type LONG VARCHAR
> +    Using column position as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateBoolean on SQL type LONG VARCHAR
> +    Using column position as first parameter to updateBoolean
> +    Using column name as first parameter to updateBoolean
> +  Testing updateNull on SQL type LONG VARCHAR
> +    Using column position as first parameter to updateNull
> +    Using column name as first parameter to updateNull
> +  Testing updateArray on SQL type LONG VARCHAR
> +    Using column position as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateRef on SQL type LONG VARCHAR
> +    Using column position as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +Next datatype to test is CHAR(2) FOR BIT DATA
> +  Testing updateShort on SQL type CHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateShort
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateShort
> +      Got expected exception : Illegal Conversion
> +  Testing updateInt on SQL type CHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateInt
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateInt
> +      Got expected exception : Illegal Conversion
> +  Testing updateLong on SQL type CHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateLong
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateLong
> +      Got expected exception : Illegal Conversion
> +  Testing updateBigDecimal on SQL type CHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateBigDecimal
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBigDecimal
> +      Got expected exception : Illegal Conversion
> +  Testing updateFloat on SQL type CHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateFloat
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateFloat
> +      Got expected exception : Illegal Conversion
> +  Testing updateDouble on SQL type CHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateDouble
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateDouble
> +      Got expected exception : Illegal Conversion
> +  Testing updateString on SQL type CHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateString
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateString
> +      Got expected exception : Illegal Conversion
> +  Testing updateAsciiStream on SQL type CHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateCharacterStream on SQL type CHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateByte on SQL type CHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateByte
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateByte
> +      Got expected exception : Illegal Conversion
> +  Testing updateBytes on SQL type CHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateBytes
> +    Using column name as first parameter to updateBytes
> +  Testing updateBinaryStream on SQL type CHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateBinaryStream
> +    Using column name as first parameter to updateBinaryStream
> +  Testing updateClob on SQL type CHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateDate on SQL type CHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateDate
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateDate
> +      Got expected exception : Illegal Conversion
> +  Testing updateTime on SQL type CHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +  Testing updateTimestamp on SQL type CHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateTimestamp
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateTimestamp
> +      Got expected exception : Illegal Conversion
> +  Testing updateBlob on SQL type CHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateBoolean on SQL type CHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateBoolean
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBoolean
> +      Got expected exception : Illegal Conversion
> +  Testing updateNull on SQL type CHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateNull
> +    Using column name as first parameter to updateNull
> +  Testing updateArray on SQL type CHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateRef on SQL type CHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +Next datatype to test is VARCHAR(2) FOR BIT DATA
> +  Testing updateShort on SQL type VARCHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateShort
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateShort
> +      Got expected exception : Illegal Conversion
> +  Testing updateInt on SQL type VARCHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateInt
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateInt
> +      Got expected exception : Illegal Conversion
> +  Testing updateLong on SQL type VARCHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateLong
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateLong
> +      Got expected exception : Illegal Conversion
> +  Testing updateBigDecimal on SQL type VARCHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateBigDecimal
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBigDecimal
> +      Got expected exception : Illegal Conversion
> +  Testing updateFloat on SQL type VARCHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateFloat
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateFloat
> +      Got expected exception : Illegal Conversion
> +  Testing updateDouble on SQL type VARCHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateDouble
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateDouble
> +      Got expected exception : Illegal Conversion
> +  Testing updateString on SQL type VARCHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateString
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateString
> +      Got expected exception : Illegal Conversion
> +  Testing updateAsciiStream on SQL type VARCHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateCharacterStream on SQL type VARCHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateByte on SQL type VARCHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateByte
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateByte
> +      Got expected exception : Illegal Conversion
> +  Testing updateBytes on SQL type VARCHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateBytes
> +    Using column name as first parameter to updateBytes
> +  Testing updateBinaryStream on SQL type VARCHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateBinaryStream
> +    Using column name as first parameter to updateBinaryStream
> +  Testing updateClob on SQL type VARCHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateDate on SQL type VARCHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateDate
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateDate
> +      Got expected exception : Illegal Conversion
> +  Testing updateTime on SQL type VARCHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +  Testing updateTimestamp on SQL type VARCHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateTimestamp
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateTimestamp
> +      Got expected exception : Illegal Conversion
> +  Testing updateBlob on SQL type VARCHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateBoolean on SQL type VARCHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateBoolean
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBoolean
> +      Got expected exception : Illegal Conversion
> +  Testing updateNull on SQL type VARCHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateNull
> +    Using column name as first parameter to updateNull
> +  Testing updateArray on SQL type VARCHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateRef on SQL type VARCHAR(2) FOR BIT DATA
> +    Using column position as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +Next datatype to test is LONG VARCHAR FOR BIT DATA
> +  Testing updateShort on SQL type LONG VARCHAR FOR BIT DATA
> +    Using column position as first parameter to updateShort
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateShort
> +      Got expected exception : Illegal Conversion
> +  Testing updateInt on SQL type LONG VARCHAR FOR BIT DATA
> +    Using column position as first parameter to updateInt
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateInt
> +      Got expected exception : Illegal Conversion
> +  Testing updateLong on SQL type LONG VARCHAR FOR BIT DATA
> +    Using column position as first parameter to updateLong
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateLong
> +      Got expected exception : Illegal Conversion
> +  Testing updateBigDecimal on SQL type LONG VARCHAR FOR BIT DATA
> +    Using column position as first parameter to updateBigDecimal
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBigDecimal
> +      Got expected exception : Illegal Conversion
> +  Testing updateFloat on SQL type LONG VARCHAR FOR BIT DATA
> +    Using column position as first parameter to updateFloat
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateFloat
> +      Got expected exception : Illegal Conversion
> +  Testing updateDouble on SQL type LONG VARCHAR FOR BIT DATA
> +    Using column position as first parameter to updateDouble
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateDouble
> +      Got expected exception : Illegal Conversion
> +  Testing updateString on SQL type LONG VARCHAR FOR BIT DATA
> +    Using column position as first parameter to updateString
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateString
> +      Got expected exception : Illegal Conversion
> +  Testing updateAsciiStream on SQL type LONG VARCHAR FOR BIT DATA
> +    Using column position as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateCharacterStream on SQL type LONG VARCHAR FOR BIT DATA
> +    Using column position as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateByte on SQL type LONG VARCHAR FOR BIT DATA
> +    Using column position as first parameter to updateByte
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateByte
> +      Got expected exception : Illegal Conversion
> +  Testing updateBytes on SQL type LONG VARCHAR FOR BIT DATA
> +    Using column position as first parameter to updateBytes
> +    Using column name as first parameter to updateBytes
> +  Testing updateBinaryStream on SQL type LONG VARCHAR FOR BIT DATA
> +    Using column position as first parameter to updateBinaryStream
> +    Using column name as first parameter to updateBinaryStream
> +  Testing updateClob on SQL type LONG VARCHAR FOR BIT DATA
> +    Using column position as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateDate on SQL type LONG VARCHAR FOR BIT DATA
> +    Using column position as first parameter to updateDate
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateDate
> +      Got expected exception : Illegal Conversion
> +  Testing updateTime on SQL type LONG VARCHAR FOR BIT DATA
> +    Using column position as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +  Testing updateTimestamp on SQL type LONG VARCHAR FOR BIT DATA
> +    Using column position as first parameter to updateTimestamp
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateTimestamp
> +      Got expected exception : Illegal Conversion
> +  Testing updateBlob on SQL type LONG VARCHAR FOR BIT DATA
> +    Using column position as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateBoolean on SQL type LONG VARCHAR FOR BIT DATA
> +    Using column position as first parameter to updateBoolean
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBoolean
> +      Got expected exception : Illegal Conversion
> +  Testing updateNull on SQL type LONG VARCHAR FOR BIT DATA
> +    Using column position as first parameter to updateNull
> +    Using column name as first parameter to updateNull
> +  Testing updateArray on SQL type LONG VARCHAR FOR BIT DATA
> +    Using column position as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateRef on SQL type LONG VARCHAR FOR BIT DATA
> +    Using column position as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +Next datatype to test is CLOB(1k)
> +  Testing updateShort on SQL type CLOB(1k)
> +    Using column position as first parameter to updateShort
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateShort
> +      Got expected exception : Illegal Conversion
> +  Testing updateInt on SQL type CLOB(1k)
> +    Using column position as first parameter to updateInt
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateInt
> +      Got expected exception : Illegal Conversion
> +  Testing updateLong on SQL type CLOB(1k)
> +    Using column position as first parameter to updateLong
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateLong
> +      Got expected exception : Illegal Conversion
> +  Testing updateBigDecimal on SQL type CLOB(1k)
> +    Using column position as first parameter to updateBigDecimal
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBigDecimal
> +      Got expected exception : Illegal Conversion
> +  Testing updateFloat on SQL type CLOB(1k)
> +    Using column position as first parameter to updateFloat
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateFloat
> +      Got expected exception : Illegal Conversion
> +  Testing updateDouble on SQL type CLOB(1k)
> +    Using column position as first parameter to updateDouble
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateDouble
> +      Got expected exception : Illegal Conversion
> +  Testing updateString on SQL type CLOB(1k)
> +    Using column position as first parameter to updateString
> +    Using column name as first parameter to updateString
> +  Testing updateAsciiStream on SQL type CLOB(1k)
> +    Using column position as first parameter to updateAsciiStream
> +    Using column name as first parameter to updateAsciiStream
> +  Testing updateCharacterStream on SQL type CLOB(1k)
> +    Using column position as first parameter to updateCharacterStream
> +    Using column name as first parameter to updateCharacterStream
> +  Testing updateByte on SQL type CLOB(1k)
> +    Using column position as first parameter to updateByte
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateByte
> +      Got expected exception : Illegal Conversion
> +  Testing updateBytes on SQL type CLOB(1k)
> +    Using column position as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +  Testing updateBinaryStream on SQL type CLOB(1k)
> +    Using column position as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateClob on SQL type CLOB(1k)
> +    Using column position as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateDate on SQL type CLOB(1k)
> +    Using column position as first parameter to updateDate
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateDate
> +      Got expected exception : Illegal Conversion
> +  Testing updateTime on SQL type CLOB(1k)
> +    Using column position as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +  Testing updateTimestamp on SQL type CLOB(1k)
> +    Using column position as first parameter to updateTimestamp
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateTimestamp
> +      Got expected exception : Illegal Conversion
> +  Testing updateBlob on SQL type CLOB(1k)
> +    Using column position as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateBoolean on SQL type CLOB(1k)
> +    Using column position as first parameter to updateBoolean
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBoolean
> +      Got expected exception : Illegal Conversion
> +  Testing updateNull on SQL type CLOB(1k)
> +    Using column position as first parameter to updateNull
> +    Using column name as first parameter to updateNull
> +  Testing updateArray on SQL type CLOB(1k)
> +    Using column position as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateRef on SQL type CLOB(1k)
> +    Using column position as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +Next datatype to test is DATE
> +  Testing updateShort on SQL type DATE
> +    Using column position as first parameter to updateShort
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateShort
> +      Got expected exception : Illegal Conversion
> +  Testing updateInt on SQL type DATE
> +    Using column position as first parameter to updateInt
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateInt
> +      Got expected exception : Illegal Conversion
> +  Testing updateLong on SQL type DATE
> +    Using column position as first parameter to updateLong
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateLong
> +      Got expected exception : Illegal Conversion
> +  Testing updateBigDecimal on SQL type DATE
> +    Using column position as first parameter to updateBigDecimal
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBigDecimal
> +      Got expected exception : Illegal Conversion
> +  Testing updateFloat on SQL type DATE
> +    Using column position as first parameter to updateFloat
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateFloat
> +      Got expected exception : Illegal Conversion
> +  Testing updateDouble on SQL type DATE
> +    Using column position as first parameter to updateDouble
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateDouble
> +      Got expected exception : Illegal Conversion
> +  Testing updateString on SQL type DATE
> +    Using column position as first parameter to updateString
> +      Got expected exception : null
> +    Using column name as first parameter to updateString
> +      Got expected exception : null
> +  Testing updateAsciiStream on SQL type DATE
> +    Using column position as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateCharacterStream on SQL type DATE
> +    Using column position as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateByte on SQL type DATE
> +    Using column position as first parameter to updateByte
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateByte
> +      Got expected exception : Illegal Conversion
> +  Testing updateBytes on SQL type DATE
> +    Using column position as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +  Testing updateBinaryStream on SQL type DATE
> +    Using column position as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateClob on SQL type DATE
> +    Using column position as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateDate on SQL type DATE
> +    Using column position as first parameter to updateDate
> +    Using column name as first parameter to updateDate
> +  Testing updateTime on SQL type DATE
> +    Using column position as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +  Testing updateTimestamp on SQL type DATE
> +    Using column position as first parameter to updateTimestamp
> +    Using column name as first parameter to updateTimestamp
> +  Testing updateBlob on SQL type DATE
> +    Using column position as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateBoolean on SQL type DATE
> +    Using column position as first parameter to updateBoolean
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBoolean
> +      Got expected exception : Illegal Conversion
> +  Testing updateNull on SQL type DATE
> +    Using column position as first parameter to updateNull
> +    Using column name as first parameter to updateNull
> +  Testing updateArray on SQL type DATE
> +    Using column position as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateRef on SQL type DATE
> +    Using column position as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +Next datatype to test is TIME
> +  Testing updateShort on SQL type TIME
> +    Using column position as first parameter to updateShort
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateShort
> +      Got expected exception : Illegal Conversion
> +  Testing updateInt on SQL type TIME
> +    Using column position as first parameter to updateInt
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateInt
> +      Got expected exception : Illegal Conversion
> +  Testing updateLong on SQL type TIME
> +    Using column position as first parameter to updateLong
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateLong
> +      Got expected exception : Illegal Conversion
> +  Testing updateBigDecimal on SQL type TIME
> +    Using column position as first parameter to updateBigDecimal
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBigDecimal
> +      Got expected exception : Illegal Conversion
> +  Testing updateFloat on SQL type TIME
> +    Using column position as first parameter to updateFloat
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateFloat
> +      Got expected exception : Illegal Conversion
> +  Testing updateDouble on SQL type TIME
> +    Using column position as first parameter to updateDouble
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateDouble
> +      Got expected exception : Illegal Conversion
> +  Testing updateString on SQL type TIME
> +    Using column position as first parameter to updateString
> +      Got expected exception : null
> +    Using column name as first parameter to updateString
> +      Got expected exception : null
> +  Testing updateAsciiStream on SQL type TIME
> +    Using column position as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateCharacterStream on SQL type TIME
> +    Using column position as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateByte on SQL type TIME
> +    Using column position as first parameter to updateByte
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateByte
> +      Got expected exception : Illegal Conversion
> +  Testing updateBytes on SQL type TIME
> +    Using column position as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +  Testing updateBinaryStream on SQL type TIME
> +    Using column position as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateClob on SQL type TIME
> +    Using column position as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateDate on SQL type TIME
> +    Using column position as first parameter to updateDate
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateDate
> +      Got expected exception : Illegal Conversion
> +  Testing updateTime on SQL type TIME
> +    Using column position as first parameter to updateTime
> +    Using column name as first parameter to updateTime
> +  Testing updateTimestamp on SQL type TIME
> +    Using column position as first parameter to updateTimestamp
> +    Using column name as first parameter to updateTimestamp
> +  Testing updateBlob on SQL type TIME
> +    Using column position as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateBoolean on SQL type TIME
> +    Using column position as first parameter to updateBoolean
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBoolean
> +      Got expected exception : Illegal Conversion
> +  Testing updateNull on SQL type TIME
> +    Using column position as first parameter to updateNull
> +    Using column name as first parameter to updateNull
> +  Testing updateArray on SQL type TIME
> +    Using column position as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateRef on SQL type TIME
> +    Using column position as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +Next datatype to test is TIMESTAMP
> +  Testing updateShort on SQL type TIMESTAMP
> +    Using column position as first parameter to updateShort
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateShort
> +      Got expected exception : Illegal Conversion
> +  Testing updateInt on SQL type TIMESTAMP
> +    Using column position as first parameter to updateInt
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateInt
> +      Got expected exception : Illegal Conversion
> +  Testing updateLong on SQL type TIMESTAMP
> +    Using column position as first parameter to updateLong
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateLong
> +      Got expected exception : Illegal Conversion
> +  Testing updateBigDecimal on SQL type TIMESTAMP
> +    Using column position as first parameter to updateBigDecimal
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBigDecimal
> +      Got expected exception : Illegal Conversion
> +  Testing updateFloat on SQL type TIMESTAMP
> +    Using column position as first parameter to updateFloat
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateFloat
> +      Got expected exception : Illegal Conversion
> +  Testing updateDouble on SQL type TIMESTAMP
> +    Using column position as first parameter to updateDouble
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateDouble
> +      Got expected exception : Illegal Conversion
> +  Testing updateString on SQL type TIMESTAMP
> +    Using column position as first parameter to updateString
> +      Got expected exception : Timestamp format must be yyyy-mm-dd hh:mm:ss.fffffffff
> +    Using column name as first parameter to updateString
> +      Got expected exception : Timestamp format must be yyyy-mm-dd hh:mm:ss.fffffffff
> +  Testing updateAsciiStream on SQL type TIMESTAMP
> +    Using column position as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateCharacterStream on SQL type TIMESTAMP
> +    Using column position as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateByte on SQL type TIMESTAMP
> +    Using column position as first parameter to updateByte
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateByte
> +      Got expected exception : Illegal Conversion
> +  Testing updateBytes on SQL type TIMESTAMP
> +    Using column position as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBytes
> +      Got expected exception : Illegal Conversion
> +  Testing updateBinaryStream on SQL type TIMESTAMP
> +    Using column position as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBinaryStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateClob on SQL type TIMESTAMP
> +    Using column position as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateDate on SQL type TIMESTAMP
> +    Using column position as first parameter to updateDate
> +    Using column name as first parameter to updateDate
> +  Testing updateTime on SQL type TIMESTAMP
> +    Using column position as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +  Testing updateTimestamp on SQL type TIMESTAMP
> +    Using column position as first parameter to updateTimestamp
> +    Using column name as first parameter to updateTimestamp
> +  Testing updateBlob on SQL type TIMESTAMP
> +    Using column position as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateBoolean on SQL type TIMESTAMP
> +    Using column position as first parameter to updateBoolean
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBoolean
> +      Got expected exception : Illegal Conversion
> +  Testing updateNull on SQL type TIMESTAMP
> +    Using column position as first parameter to updateNull
> +    Using column name as first parameter to updateNull
> +  Testing updateArray on SQL type TIMESTAMP
> +    Using column position as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateRef on SQL type TIMESTAMP
> +    Using column position as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +Next datatype to test is BLOB(1k)
> +  Testing updateShort on SQL type BLOB(1k)
> +    Using column position as first parameter to updateShort
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateShort
> +      Got expected exception : Illegal Conversion
> +  Testing updateInt on SQL type BLOB(1k)
> +    Using column position as first parameter to updateInt
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateInt
> +      Got expected exception : Illegal Conversion
> +  Testing updateLong on SQL type BLOB(1k)
> +    Using column position as first parameter to updateLong
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateLong
> +      Got expected exception : Illegal Conversion
> +  Testing updateBigDecimal on SQL type BLOB(1k)
> +    Using column position as first parameter to updateBigDecimal
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBigDecimal
> +      Got expected exception : Illegal Conversion
> +  Testing updateFloat on SQL type BLOB(1k)
> +    Using column position as first parameter to updateFloat
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateFloat
> +      Got expected exception : Illegal Conversion
> +  Testing updateDouble on SQL type BLOB(1k)
> +    Using column position as first parameter to updateDouble
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateDouble
> +      Got expected exception : Illegal Conversion
> +  Testing updateString on SQL type BLOB(1k)
> +    Using column position as first parameter to updateString
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateString
> +      Got expected exception : Illegal Conversion
> +  Testing updateAsciiStream on SQL type BLOB(1k)
> +    Using column position as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateAsciiStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateCharacterStream on SQL type BLOB(1k)
> +    Using column position as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateCharacterStream
> +      Got expected exception : Illegal Conversion
> +  Testing updateByte on SQL type BLOB(1k)
> +    Using column position as first parameter to updateByte
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateByte
> +      Got expected exception : Illegal Conversion
> +  Testing updateBytes on SQL type BLOB(1k)
> +    Using column position as first parameter to updateBytes
> +    Using column name as first parameter to updateBytes
> +  Testing updateBinaryStream on SQL type BLOB(1k)
> +    Using column position as first parameter to updateBinaryStream
> +    Using column name as first parameter to updateBinaryStream
> +  Testing updateClob on SQL type BLOB(1k)
> +    Using column position as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateClob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateDate on SQL type BLOB(1k)
> +    Using column position as first parameter to updateDate
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateDate
> +      Got expected exception : Illegal Conversion
> +  Testing updateTime on SQL type BLOB(1k)
> +    Using column position as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateTime
> +      Got expected exception : Illegal Conversion
> +  Testing updateTimestamp on SQL type BLOB(1k)
> +    Using column position as first parameter to updateTimestamp
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateTimestamp
> +      Got expected exception : Illegal Conversion
> +  Testing updateBlob on SQL type BLOB(1k)
> +    Using column position as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateBlob
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateBoolean on SQL type BLOB(1k)
> +    Using column position as first parameter to updateBoolean
> +      Got expected exception : Illegal Conversion
> +    Using column name as first parameter to updateBoolean
> +      Got expected exception : Illegal Conversion
> +  Testing updateNull on SQL type BLOB(1k)
> +    Using column position as first parameter to updateNull
> +    Using column name as first parameter to updateNull
> +  Testing updateArray on SQL type BLOB(1k)
> +    Using column position as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateArray
> +      Got expected exception : JDBC 3 method called - not yet supported
> +  Testing updateRef on SQL type BLOB(1k)
> +    Using column position as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +    Using column name as first parameter to updateRef
> +      Got expected exception : JDBC 3 method called - not yet supported
> +Positive Test22 - Test updateObject method
> +Next datatype to test is SMALLINT
> +  updateObject with column position & Short object as parameters
> +  updateObject with column name & Short object as parameters
> +  updateObject with column position & Integer object as parameters
> +  updateObject with column name & Integer object as parameters
> +  updateObject with column position & Long object as parameters
> +  updateObject with column name & Long object as parameters
> +  updateObject with column position & BigDecimal object as parameters
> +  updateObject with column name & BigDecimal object as parameters
> +  updateObject with column position & Float object as parameters
> +  updateObject with column name & Float object as parameters
> +  updateObject with column position & Double object as parameters
> +  updateObject with column name & Double object as parameters
> +  updateObject with column position & String object as parameters
> +    Got expected exception : Invalid data conversion: Parameter instance 1992                                                         is invalid for requested conversion.
> +  updateObject with column name & String object as parameters
> +    Got expected exception : Invalid data conversion: Parameter instance 1992                                                         is invalid for requested conversion.
> +  updateObject with column position & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Date object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Date object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & TimeStamp object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & TimeStamp object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Boolean object as parameters
> +  updateObject with column name & Boolean object as parameters
> +  updateObject with column position & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +  updateObject with column name & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +Next datatype to test is INTEGER
> +  updateObject with column position & Short object as parameters
> +  updateObject with column name & Short object as parameters
> +  updateObject with column position & Integer object as parameters
> +  updateObject with column name & Integer object as parameters
> +  updateObject with column position & Long object as parameters
> +  updateObject with column name & Long object as parameters
> +  updateObject with column position & BigDecimal object as parameters
> +  updateObject with column name & BigDecimal object as parameters
> +  updateObject with column position & Float object as parameters
> +  updateObject with column name & Float object as parameters
> +  updateObject with column position & Double object as parameters
> +  updateObject with column name & Double object as parameters
> +  updateObject with column position & String object as parameters
> +    Got expected exception : Invalid data conversion: Parameter instance 1992                                                         is invalid for requested conversion.
> +  updateObject with column name & String object as parameters
> +    Got expected exception : Invalid data conversion: Parameter instance 1992                                                         is invalid for requested conversion.
> +  updateObject with column position & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Date object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Date object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & TimeStamp object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & TimeStamp object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Boolean object as parameters
> +  updateObject with column name & Boolean object as parameters
> +  updateObject with column position & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +  updateObject with column name & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +Next datatype to test is BIGINT
> +  updateObject with column position & Short object as parameters
> +  updateObject with column name & Short object as parameters
> +  updateObject with column position & Integer object as parameters
> +  updateObject with column name & Integer object as parameters
> +  updateObject with column position & Long object as parameters
> +  updateObject with column name & Long object as parameters
> +  updateObject with column position & BigDecimal object as parameters
> +  updateObject with column name & BigDecimal object as parameters
> +  updateObject with column position & Float object as parameters
> +  updateObject with column name & Float object as parameters
> +  updateObject with column position & Double object as parameters
> +  updateObject with column name & Double object as parameters
> +  updateObject with column position & String object as parameters
> +    Got expected exception : Invalid data conversion: Parameter instance 1992                                                         is invalid for requested conversion.
> +  updateObject with column name & String object as parameters
> +    Got expected exception : Invalid data conversion: Parameter instance 1992                                                         is invalid for requested conversion.
> +  updateObject with column position & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Date object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Date object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & TimeStamp object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & TimeStamp object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Boolean object as parameters
> +  updateObject with column name & Boolean object as parameters
> +  updateObject with column position & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +  updateObject with column name & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +Next datatype to test is DECIMAL(10,5)
> +  updateObject with column position & Short object as parameters
> +  updateObject with column name & Short object as parameters
> +  updateObject with column position & Integer object as parameters
> +  updateObject with column name & Integer object as parameters
> +  updateObject with column position & Long object as parameters
> +  updateObject with column name & Long object as parameters
> +  updateObject with column position & BigDecimal object as parameters
> +  updateObject with column name & BigDecimal object as parameters
> +  updateObject with column position & Float object as parameters
> +  updateObject with column name & Float object as parameters
> +  updateObject with column position & Double object as parameters
> +  updateObject with column name & Double object as parameters
> +  updateObject with column position & String object as parameters
> +    Got expected exception : Invalid data conversion: Parameter instance 1992                                                         is invalid for requested conversion.
> +  updateObject with column name & String object as parameters
> +    Got expected exception : Invalid data conversion: Parameter instance 1992                                                         is invalid for requested conversion.
> +  updateObject with column position & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Date object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Date object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & TimeStamp object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & TimeStamp object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Boolean object as parameters
> +  updateObject with column name & Boolean object as parameters
> +  updateObject with column position & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +  updateObject with column name & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +Next datatype to test is REAL
> +  updateObject with column position & Short object as parameters
> +  updateObject with column name & Short object as parameters
> +  updateObject with column position & Integer object as parameters
> +  updateObject with column name & Integer object as parameters
> +  updateObject with column position & Long object as parameters
> +  updateObject with column name & Long object as parameters
> +  updateObject with column position & BigDecimal object as parameters
> +  updateObject with column name & BigDecimal object as parameters
> +  updateObject with column position & Float object as parameters
> +  updateObject with column name & Float object as parameters
> +  updateObject with column position & Double object as parameters
> +  updateObject with column name & Double object as parameters
> +  updateObject with column position & String object as parameters
> +  updateObject with column name & String object as parameters
> +  updateObject with column position & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Date object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Date object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & TimeStamp object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & TimeStamp object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Boolean object as parameters
> +  updateObject with column name & Boolean object as parameters
> +  updateObject with column position & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +  updateObject with column name & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +Next datatype to test is DOUBLE
> +  updateObject with column position & Short object as parameters
> +  updateObject with column name & Short object as parameters
> +  updateObject with column position & Integer object as parameters
> +  updateObject with column name & Integer object as parameters
> +  updateObject with column position & Long object as parameters
> +  updateObject with column name & Long object as parameters
> +  updateObject with column position & BigDecimal object as parameters
> +  updateObject with column name & BigDecimal object as parameters
> +  updateObject with column position & Float object as parameters
> +  updateObject with column name & Float object as parameters
> +  updateObject with column position & Double object as parameters
> +  updateObject with column name & Double object as parameters
> +  updateObject with column position & String object as parameters
> +  updateObject with column name & String object as parameters
> +  updateObject with column position & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Date object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Date object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & TimeStamp object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & TimeStamp object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Boolean object as parameters
> +  updateObject with column name & Boolean object as parameters
> +  updateObject with column position & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +  updateObject with column name & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +Next datatype to test is CHAR(60)
> +  updateObject with column position & Short object as parameters
> +  updateObject with column name & Short object as parameters
> +  updateObject with column position & Integer object as parameters
> +  updateObject with column name & Integer object as parameters
> +  updateObject with column position & Long object as parameters
> +  updateObject with column name & Long object as parameters
> +  updateObject with column position & BigDecimal object as parameters
> +  updateObject with column name & BigDecimal object as parameters
> +  updateObject with column position & Float object as parameters
> +  updateObject with column name & Float object as parameters
> +  updateObject with column position & Double object as parameters
> +  updateObject with column name & Double object as parameters
> +  updateObject with column position & String object as parameters
> +  updateObject with column name & String object as parameters
> +  updateObject with column position & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Clob object as parameters
> +  updateObject with column name & Clob object as parameters
> +  updateObject with column position & Date object as parameters
> +  updateObject with column name & Date object as parameters
> +  updateObject with column position & Time object as parameters
> +  updateObject with column name & Time object as parameters
> +  updateObject with column position & TimeStamp object as parameters
> +  updateObject with column name & TimeStamp object as parameters
> +  updateObject with column position & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Boolean object as parameters
> +  updateObject with column name & Boolean object as parameters
> +  updateObject with column position & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +  updateObject with column name & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +Next datatype to test is VARCHAR(60)
> +  updateObject with column position & Short object as parameters
> +  updateObject with column name & Short object as parameters
> +  updateObject with column position & Integer object as parameters
> +  updateObject with column name & Integer object as parameters
> +  updateObject with column position & Long object as parameters
> +  updateObject with column name & Long object as parameters
> +  updateObject with column position & BigDecimal object as parameters
> +  updateObject with column name & BigDecimal object as parameters
> +  updateObject with column position & Float object as parameters
> +  updateObject with column name & Float object as parameters
> +  updateObject with column position & Double object as parameters
> +  updateObject with column name & Double object as parameters
> +  updateObject with column position & String object as parameters
> +  updateObject with column name & String object as parameters
> +  updateObject with column position & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Clob object as parameters
> +  updateObject with column name & Clob object as parameters
> +  updateObject with column position & Date object as parameters
> +  updateObject with column name & Date object as parameters
> +  updateObject with column position & Time object as parameters
> +  updateObject with column name & Time object as parameters
> +  updateObject with column position & TimeStamp object as parameters
> +  updateObject with column name & TimeStamp object as parameters
> +  updateObject with column position & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Boolean object as parameters
> +  updateObject with column name & Boolean object as parameters
> +  updateObject with column position & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +  updateObject with column name & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +Next datatype to test is LONG VARCHAR
> +  updateObject with column position & Short object as parameters
> +  updateObject with column name & Short object as parameters
> +  updateObject with column position & Integer object as parameters
> +  updateObject with column name & Integer object as parameters
> +  updateObject with column position & Long object as parameters
> +  updateObject with column name & Long object as parameters
> +  updateObject with column position & BigDecimal object as parameters
> +  updateObject with column name & BigDecimal object as parameters
> +  updateObject with column position & Float object as parameters
> +  updateObject with column name & Float object as parameters
> +  updateObject with column position & Double object as parameters
> +  updateObject with column name & Double object as parameters
> +  updateObject with column position & String object as parameters
> +  updateObject with column name & String object as parameters
> +  updateObject with column position & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Clob object as parameters
> +  updateObject with column name & Clob object as parameters
> +  updateObject with column position & Date object as parameters
> +  updateObject with column name & Date object as parameters
> +  updateObject with column position & Time object as parameters
> +  updateObject with column name & Time object as parameters
> +  updateObject with column position & TimeStamp object as parameters
> +  updateObject with column name & TimeStamp object as parameters
> +  updateObject with column position & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Boolean object as parameters
> +  updateObject with column name & Boolean object as parameters
> +  updateObject with column position & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +  updateObject with column name & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +Next datatype to test is CHAR(2) FOR BIT DATA
> +  updateObject with column position & Short object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Short object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Integer object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Integer object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Long object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Long object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & BigDecimal object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & BigDecimal object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Float object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Float object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Double object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Double object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & String object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & String object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & bytes[] array as parameters
> +  updateObject with column name & bytes[] array as parameters
> +  updateObject with column position & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Date object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Date object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & TimeStamp object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & TimeStamp object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Blob object as parameters
> +    Got expected exception : A truncation error was encountered trying to shrink CHAR () FOR BIT DATA 'XX-RESOLVE-XX' to length 2.
> +  updateObject with column name & Blob object as parameters
> +    Got expected exception : A truncation error was encountered trying to shrink CHAR () FOR BIT DATA 'XX-RESOLVE-XX' to length 2.
> +  updateObject with column position & Boolean object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Boolean object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +  updateObject with column name & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +Next datatype to test is VARCHAR(2) FOR BIT DATA
> +  updateObject with column position & Short object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Short object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Integer object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Integer object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Long object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Long object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & BigDecimal object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & BigDecimal object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Float object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Float object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Double object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Double object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & String object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & String object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & bytes[] array as parameters
> +  updateObject with column name & bytes[] array as parameters
> +  updateObject with column position & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Date object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Date object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & TimeStamp object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & TimeStamp object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Blob object as parameters
> +    Got expected exception : A truncation error was encountered trying to shrink VARCHAR () FOR BIT DATA 'XX-RESOLVE-XX' to length 2.
> +  updateObject with column name & Blob object as parameters
> +    Got expected exception : A truncation error was encountered trying to shrink VARCHAR () FOR BIT DATA 'XX-RESOLVE-XX' to length 2.
> +  updateObject with column position & Boolean object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Boolean object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +  updateObject with column name & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +Next datatype to test is LONG VARCHAR FOR BIT DATA
> +  updateObject with column position & Short object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Short object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Integer object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Integer object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Long object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Long object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & BigDecimal object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & BigDecimal object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Float object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Float object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Double object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Double object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & String object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & String object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & bytes[] array as parameters
> +  updateObject with column name & bytes[] array as parameters
> +  updateObject with column position & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Date object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Date object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & TimeStamp object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & TimeStamp object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Blob object as parameters
> +  updateObject with column name & Blob object as parameters
> +  updateObject with column position & Boolean object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Boolean object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +  updateObject with column name & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +Next datatype to test is CLOB(1k)
> +  updateObject with column position & Short object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Short object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Integer object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Integer object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Long object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Long object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & BigDecimal object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & BigDecimal object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Float object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Float object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Double object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Double object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & String object as parameters
> +  updateObject with column name & String object as parameters
> +  updateObject with column position & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Clob object as parameters
> +  updateObject with column name & Clob object as parameters
> +  updateObject with column position & Date object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Date object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & TimeStamp object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & TimeStamp object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Boolean object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Boolean object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +  updateObject with column name & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +Next datatype to test is DATE
> +  updateObject with column position & Short object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Short object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Integer object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Integer object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Long object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Long object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & BigDecimal object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & BigDecimal object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Float object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Float object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Double object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Double object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & String object as parameters
> +    Got expected exception : null
> +  updateObject with column name & String object as parameters
> +    Got expected exception : null
> +  updateObject with column position & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Date object as parameters
> +  updateObject with column name & Date object as parameters
> +  updateObject with column position & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & TimeStamp object as parameters
> +  updateObject with column name & TimeStamp object as parameters
> +  updateObject with column position & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Boolean object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Boolean object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +  updateObject with column name & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +Next datatype to test is TIME
> +  updateObject with column position & Short object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Short object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Integer object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Integer object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Long object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Long object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & BigDecimal object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & BigDecimal object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Float object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Float object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Double object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Double object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & String object as parameters
> +    Got expected exception : null
> +  updateObject with column name & String object as parameters
> +    Got expected exception : null
> +  updateObject with column position & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Date object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Date object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Time object as parameters
> +  updateObject with column name & Time object as parameters
> +  updateObject with column position & TimeStamp object as parameters
> +  updateObject with column name & TimeStamp object as parameters
> +  updateObject with column position & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Boolean object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Boolean object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +  updateObject with column name & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +Next datatype to test is TIMESTAMP
> +  updateObject with column position & Short object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Short object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Integer object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Integer object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Long object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Long object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & BigDecimal object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & BigDecimal object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Float object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Float object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Double object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Double object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & String object as parameters
> +    Got expected exception : Timestamp format must be yyyy-mm-dd hh:mm:ss.fffffffff
> +  updateObject with column name & String object as parameters
> +    Got expected exception : Timestamp format must be yyyy-mm-dd hh:mm:ss.fffffffff
> +  updateObject with column position & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & bytes[] array as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Date object as parameters
> +  updateObject with column name & Date object as parameters
> +  updateObject with column position & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & TimeStamp object as parameters
> +  updateObject with column name & TimeStamp object as parameters
> +  updateObject with column position & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Blob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Boolean object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Boolean object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +  updateObject with column name & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +Next datatype to test is BLOB(1k)
> +  updateObject with column position & Short object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Short object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Integer object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Integer object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Long object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Long object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & BigDecimal object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & BigDecimal object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Float object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Float object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Double object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Double object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & String object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & String object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & bytes[] array as parameters
> +  updateObject with column name & bytes[] array as parameters
> +  updateObject with column position & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Clob object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Date object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Date object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Time object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & TimeStamp object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & TimeStamp object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & Blob object as parameters
> +  updateObject with column name & Blob object as parameters
> +  updateObject with column position & Boolean object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column name & Boolean object as parameters
> +    Got expected exception : Illegal Conversion
> +  updateObject with column position & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +  updateObject with column name & null as parameters
> +   Got expected exception:Invalid data conversion: Parameter instance null is invalid for requested conversion.
> +Positive Test23 - Test cancelRowUpdates after updateXXX methods on all the supported sql datatypes
> +  updateShort and then cancelRowUpdates
> +  updateInt and then cancelRowUpdates
> +  updateLong and then cancelRowUpdates
> +  updateBigDecimal and then cancelRowUpdates
> +  updateFloat and then cancelRowUpdates
> +  updateDouble and then cancelRowUpdates
> +  updateString and then cancelRowUpdates
> +  updateAsciiStream and then cancelRowUpdates
> +  updateCharacterStream and then cancelRowUpdates
> +  updateByte and then cancelRowUpdates
> +  updateBytes and then cancelRowUpdates
> +  updateBinaryStream and then cancelRowUpdates
> +  updateDate and then cancelRowUpdates
> +  updateTime and then cancelRowUpdates
> +  updateTimestamp and then cancelRowUpdates
> +Positive Test24a - after updateXXX, try cancelRowUpdates and then deleteRow
> +column 1 on this row before updateInt is 1
> +column 1 on this row after updateInt is 234
> +now cancelRowUpdates on the row
> +Since after cancelRowUpdates(), ResultSet is positioned on the same row, getXXX will pass
> +column 1 on this row after cancelRowUpdates is 1
> +Since after cancelRowUpdates(), ResultSet is positioned on the same row, a deleteRow at this point will pass
> +PASS : deleteRow passed as expected
> +calling updateRow after deleteRow w/o first positioning the ResultSet on the next row will fail
> +SQL State : null
> +Got expected exception Invalid operation to update at current cursor position
> +Position the ResultSet with next()
> +Should be able to updateRow() on the current row now
> +Positive Test25 - issue cancelRowUpdates without any updateXXX
> +Positive Test26 - issue updateRow without any updateXXX will not move the resultset position
> +Positive Test27 - issue updateXXX and then deleteRow
> +SQL State : null
> +Got expected exception Invalid operation to update at current cursor position
> +SQL State : null
> +Got expected exception Invalid operation to update at current cursor position
> +SQL State : null
> +Got expected exception Invalid operation to read at current cursor position.
> +Positive Test28 - issue updateXXXs and then move off the row, the changes should be ignored
> +	 C1,C2
> +	 -- --
> +	{1,aa                  }
> +	{2,bb                  }
> +	{3,cc                  }
> +  column 1 on this row before updateInt is 1
> +  Issue updateInt to change the column's value to 2345
> +  Move to next row w/o issuing updateRow
> +  Make sure that changes didn't make it to the database
> +	 C1,C2
> +	 -- --
> +	{1,aa                  }
> +	{2,bb                  }
> +	{3,cc                  }
> +Positive Test29 - issue multiple updateXXXs and then a updateRow
> +	 C1,C2
> +	 -- --
> +	{1,aa                  }
> +	{2,bb                  }
> +	{3,cc                  }
> +  column 1 on this row before updateInt is 1
> +  Issue updateInt to change the column's value to 2345
> +  Issue another updateInt on the same row and column to change the column's value to 9999
> +  Issue updateString to change the column's value to 'xxxxxxx'
> +  Now issue updateRow
> +  Make sure that changes made it to the database correctly
> +	 C1,C2
> +	 -- --
> +	{9999,xxxxxxx             }
> +	{2,bb                  }
> +	{3,cc                  }
> +Positive Test30 - call updateXXX methods on only columns that correspond to a column in the table
> +	 C1,C2
> +	 -- --
> +	{9999,xxxxxxx             }
> +	{2,bb                  }
> +	{3,cc                  }
> +  Make sure that changes made it to the database correctly
> +	 C1,C2
> +	 -- --
> +	{22,xxxxxxx             }
> +	{2,bb                  }
> +	{3,cc                  }
> +Positive Test31a - case sensitive table and column names
> +  Make sure that changes made it to the database correctly
> +	 c11,C12
> +	 --- ---
> +	{11,22}
> +Positive Test31b - table and column names with spaces in middle and end
> +  Make sure for table " t 11 " that changes made it to the database correctly
> +	  c 111 ,C112
> +	 ------- ----
> +	{11,22}
> +Positive Test32 - call updateXXX methods on column that is not in for update columns list
> +	 C1,C2
> +	 -- --
> +	{22,xxxxxxx             }
> +	{2,bb                  }
> +	{3,cc                  }
> +SQL State : null
> +Got expected exception Column not updatable
> +updateRow passed
> +  Make sure the contents of table are unchanged
> +	 C1,C2
> +	 -- --
> +	{22,xxxxxxx             }
> +	{2,bb                  }
> +	{3,cc                  }
> +Positive Test33 - try to update a table from another schema
> +  contents of table t1 from current schema
> +	 C1,C2
> +	 -- --
> +	{22,xxxxxxx             }
> +	{2,bb                  }
> +	{3,cc                  }
> +  contents of table t1 from schema s2
> +	 C1S2T1,C2S2T1,C3S2T2
> +	 ------ ------ ------
> +	{1,2,2.2}
> +	{1,3,3.3}
> +  Try to change contents of 2nd column of s2.t1 using updateRow
> +  Make sure that changes made to the right table t1
> +  contents of table t1 from current schema should have remained unchanged
> +	 C1,C2
> +	 -- --
> +	{22,xxxxxxx             }
> +	{2,bb                  }
> +	{3,cc                  }
> +  contents of table t1 from schema s2 should have changed
> +	 C1S2T1,C2S2T1,C3S2T2
> +	 ------ ------ ------
> +	{1,1,2.2}
> +	{1,1,3.3}
>  Finished testing updateable resultsets
> Index: java/testing/org/apache/derbyTesting/functionTests/master/updatableResultSet.out
> ===================================================================
> --- java/testing/org/apache/derbyTesting/functionTests/master/updatableResultSet.out	(revision 170535)
> +++ java/testing/org/apache/derbyTesting/functionTests/master/updatableResultSet.out	(working copy)
> @@ -13,6 +13,8 @@
>  SQL State : XJ083
>  Got expected exception 'updateRow' not allowed because the ResultSet is not an updatable ResultSet. 
>  Negative Test2 - request for scroll sensitive updatable resultset will give a read only scroll insensitive resultset
> +WARNING 01J02: Scroll sensitive cursors are not currently implemented.
> +WARNING 01J03: Scroll sensitive and scroll insensitive updatable ResultSets are not currently implemented.
>  requested TYPE_SCROLL_SENSITIVE, CONCUR_UPDATABLE but that is not supported
>  Jira issue Derby-154 : When client connects to Network Server using JCC, it incorrectly shows support for scroll sensitive updatable resultsets
>  Make sure that we got TYPE_SCROLL_INSENSITIVE? true
> @@ -42,7 +44,7 @@
>  Make sure that we got CONCUR_READ_ONLY? true
>  Jira issue Derby-159 : Warnings raised by Derby are not getting passed to the Client in Network Server Mode
>  Will see the warnings in embedded mode only
> -Expected warnings on resultset = java.sql.SQLWarning: ResultSet not updatable. Query does not qualify to generate an updatable ResultSet.
> +WARNING 01J06: ResultSet not updatable. Query does not qualify to generate an updatable ResultSet.
>  Now attempting to send a delete on a sql with no FOR UPDATE clause.
>  SQL State : XJ083
>  Got expected exception 'deleteRow' not allowed because the ResultSet is not an updatable ResultSet. 
> @@ -53,7 +55,7 @@
>  Make sure that we got CONCUR_READ_ONLY? true
>  Jira issue Derby-159 : Warnings raised by Derby are not getting passed to the Client in Network Server Mode
>  Will see the warnings in embedded mode only
> -Expected warnings on resultset = java.sql.SQLWarning: ResultSet not updatable. Query does not qualify to generate an updatable ResultSet.
> +WARNING 01J06: ResultSet not updatable. Query does not qualify to generate an updatable ResultSet.
>  Now attempting to send a delete on a sql with FOR READ ONLY clause.
>  SQL State : XJ083
>  Got expected exception 'deleteRow' not allowed because the ResultSet is not an updatable ResultSet. 
> @@ -66,8 +68,7 @@
>  SQL State : 24000
>  Got expected exception Invalid cursor state - no current row.
>  Now attempt a updateRow without first doing next on the resultset.
> -In embedded mode, updateRow will check if it is on a row or not even though no changes have been made to the row using updateXXX
> -In Network Server mode, if no updateXXX were issued before updateRow, then updateRow is a no-op and doesn't check if it is on a row or not
> +updateRow will check if it is on a row or not even though no changes have been made to the row using updateXXX
>  SQL State : 24000
>  Got expected exception Invalid cursor state - no current row.
>  ResultSet is positioned after the last row. attempt to deleteRow at this point should fail!
> @@ -126,8 +127,7 @@
>  JDBC 2.0 updatable resultset apis on this ResultSet object will pass because this is an updatable resultset
>  column 1 on this row before deleteRow is 1
>  column 2 on this row before deleteRow is aa                  
> -Since after deleteRow(), in embedded mode, ResultSet is positioned before the next row, getXXX will fail
> -In Network Server mode, the ResultSet stays on the deleted row after deleteRow and hence no error for getXXX
> +Since after deleteRow(), in embedded mode and Network Server mode using Derby Net Client, ResultSet is positioned before the next row, getXXX will fail
>  SQL State : 24000
>  Got expected exception Invalid cursor state - no current row.
>  calling deleteRow again w/o first positioning the ResultSet on the next row will fail
> @@ -140,8 +140,7 @@
>  column 1 on this row after updateInt is 234
>  column 2 on this row before updateString is aa                  
>  now updateRow on the row
> -Since after updateRow(), in embedded mode, ResultSet is positioned before the next row, getXXX will fail
> -In Network Server mode, the ResultSet stays on the updated row after updateRow and hence no error for getXXX
> +Since after updateRow(), in embedded mode and Network Server mode using Derby Net Client, ResultSet is positioned before the next row, getXXX will fail
>  SQL State : 24000
>  Got expected exception Invalid cursor state - no current row.
>  calling updateRow again w/o first positioning the ResultSet on the next row will fail
> @@ -150,11 +149,14 @@
>  Position the ResultSet with next()
>  Should be able to updateRow() on the current row now
>  Positive Test2 - even if no columns from table specified in the column list, we should be able to get updatable resultset
> +Will work in embedded mode because target table is not derived from the first column in the select list
> +Will not work in network server mode because it derives the target tabke from the first column in the select list
>  total number of rows in T1 
>  	 1
>  	 -
>  	{3}
>  column 1 on this row is 1
> +PASS!!! passed in embedded mode
>  total number of rows in T1 after one deleteRow is 
>  	 1
>  	 -
> @@ -244,16 +246,24 @@
>  	 --- ---
>  	{123,1}
>  	{123,1}
> -Positive Test8a - change the name of the resultset and see if deleteRow still works
> +Positive Test8a - change the name of the statement when the resultset is open and see if deleteRow still works
> +This test works in embedded mode since Derby can handle the change in the name of the statement with an open resultset
> +But it fails under Network Server mode because JCC and Derby Net Client do not allow statement name change when there an open resultset against it
>  change the cursor name(case sensitive name) with setCursorName and then try to deleteRow
>  change the cursor name one more time with setCursorName and then try to deleteRow
> -Positive Test8b - change the name of the resultset and see if updateRow still works
> +PASS!!! passed in embedded mode
> +Positive Test8b - change the name of the statement when the resultset is open and see if updateRow still works
> +This test works in embedded mode since Derby can handle the change in the name of the statement with an open resultset
> +But it fails under Network Server mode because JCC and Derby Net Client do not allow statement name change when there an open resultset against it
>  change the cursor name one more time with setCursorName and then try to updateRow
>  change the cursor name(case sensitive name) with setCursorName and then try to updateRow
> -Positive Test9a - using correlation name for the table in the select sql is not a problem
> +PASS!!! passed in embedded mode
> +Positive Test9a - using correlation name for the table in the select sql works in embedded mode and Network Server using Derby Net Client driver
> +Correlation name for table does not work in Network Server mode (using JCC) because the drivers construct the delete sql with the correlation name rather than the base table name
>  column 1 on this row is 1
>  now try to deleteRow
> -Positive Test9b - using correlation name for updatable column name is not allowed
> +PASS!!! passed in embedded mode
> +Positive Test9b - using correlation name for updatable columns is not allowed.
>  Table t1 has following rows
>  	 C1,C2
>  	 -- --
> @@ -283,18 +293,9 @@
>  	{11,aa                  }
>  	{2,bb                  }
>  	{3,cc                  }
> -Positive Test9c - try to updateXXX on a readonly column. Should get error
> -SQL State : 42X31
> -Got expected exception Column 'C2' is not in FOR UPDATE list of cursor 'SQLCUR17'.
> -Table t1 has following rows
> -	 C1,C2
> -	 -- --
> -	{1,aa                  }
> -	{2,bb                  }
> -	{3,cc                  }
>  Positive Test9d - try to updateXXX on a readonly column with correlation name. Should get error
>  SQL State : 42X31
> -Got expected exception Column 'COL2' is not in FOR UPDATE list of cursor 'SQLCUR18'.
> +Got expected exception Column 'COL2' is not in FOR UPDATE list of cursor 'SQLCUR17'.
>  Table t1 has following rows
>  	 C1,C2
>  	 -- --
> @@ -305,7 +306,7 @@
>  delete using first resultset
>  attempt to send deleteRow on the same row through a different resultset should throw an exception
>  SQL State : XCL08
> -Got expected exception Cursor 'SQLCUR20' is not on a row.
> +Got expected exception Cursor 'SQLCUR19' is not on a row.
>  Move to next row in the 2nd resultset and then delete using the second resultset
>  Positive Test11 - setting the fetch size to > 1 will be ignored by updatable resultset. Same as updatable cursors
>  Notice the Fetch Size in run time statistics output.
> @@ -314,7 +315,7 @@
>  Statement Name: 
>  	null
>  Statement Text: 
> -	SELECT 1, 2 FROM t1 FOR UPDATE of c1
> +	SELECT * FROM t1 FOR UPDATE of c1
>  Parse Time: 0
>  Bind Time: 0
>  Optimize Time: 0
> @@ -326,51 +327,25 @@
>  Begin Execution Timestamp : null
>  End Execution Timestamp : null
>  Statement Execution Plan Text: 
> -Project-Restrict ResultSet (3):
> +Table Scan ResultSet for T1 at read committed isolation level using exclusive row locking chosen by the optimizer
>  Number of opens = 1
>  Rows seen = 0
>  Rows filtered = 0
> -restriction = false
> -projection = true
> +Fetch Size = 1
>  	constructor time (milliseconds) = 0
>  	open time (milliseconds) = 0
>  	next time (milliseconds) = 0
>  	close time (milliseconds) = 0
> -	restriction time (milliseconds) = 0
> -	projection time (milliseconds) = 0
> -Source result set:
> -	Project-Restrict ResultSet (2):
> -	Number of opens = 1
> -	Rows seen = 0
> -	Rows filtered = 0
> -	restriction = false
> -	projection = true
> -		constructor time (milliseconds) = 0
> -		open time (milliseconds) = 0
> -		next time (milliseconds) = 0
> -		close time (milliseconds) = 0
> -		restriction time (milliseconds) = 0
> -		projection time (milliseconds) = 0
> -	Source result set:
> -		Table Scan ResultSet for T1 at read committed isolation level using exclusive row locking chosen by the optimizer
> -		Number of opens = 1
> -		Rows seen = 0
> -		Rows filtered = 0
> -		Fetch Size = 1
> -			constructor time (milliseconds) = 0
> -			open time (milliseconds) = 0
> -			next time (milliseconds) = 0
> -			close time (milliseconds) = 0
> -		scan information: 
> -			Bit set of columns fetched=All
> -			Number of columns fetched=2
> -			Number of pages visited=0
> -			Number of rows qualified=0
> -			Number of rows visited=0
> -			Scan type=heap
> -			start position: 
> -null			stop position: 
> -null			qualifiers:
> +scan information: 
> +	Bit set of columns fetched=All
> +	Number of columns fetched=2
> +	Number of pages visited=0
> +	Number of rows qualified=0
> +	Number of rows visited=0
> +	Scan type=heap
> +	start position: 
> +null	stop position: 
> +null	qualifiers:
>  None
>  statement's fetch size is 200
>  Positive Test12a - make sure delete trigger gets fired when deleteRow is issued
> @@ -589,9 +564,7 @@
>    Got expected exception : 'updateBinaryStream' not allowed because the ResultSet is not an updatable ResultSet. 
>    Test updateClob on a readonly resultset
>    Using column position as first parameter to updateClob
> -  Got expected exception : 'updateClob' not allowed because the ResultSet is not an updatable ResultSet. 
>    Using column name as first parameter to updateClob
> -  Got expected exception : 'updateClob' not allowed because the ResultSet is not an updatable ResultSet. 
>    Test updateDate on a readonly resultset
>    Using column position as first parameter to updateDate
>    Got expected exception : 'updateDate' not allowed because the ResultSet is not an updatable ResultSet. 
> @@ -609,9 +582,7 @@
>    Got expected exception : 'updateTimestamp' not allowed because the ResultSet is not an updatable ResultSet. 
>    Test updateBlob on a readonly resultset
>    Using column position as first parameter to updateBlob
> -  Got expected exception : 'updateBlob' not allowed because the ResultSet is not an updatable ResultSet. 
>    Using column name as first parameter to updateBlob
> -  Got expected exception : 'updateBlob' not allowed because the ResultSet is not an updatable ResultSet. 
>    Test updateBoolean on a readonly resultset
>    Using column position as first parameter to updateBoolean
>    Got expected exception : 'updateBoolean' not allowed because the ResultSet is not an updatable ResultSet. 
> @@ -624,14 +595,10 @@
>    Got expected exception : 'updateNull' not allowed because the ResultSet is not an updatable ResultSet. 
>    Test updateArray on a readonly resultset
>    Using column position as first parameter to updateArray
> -  Got expected exception : Feature not implemented: no details.
>    Using column name as first parameter to updateArray
> -  Got expected exception : Feature not implemented: no details.
>    Test updateRef on a readonly resultset
>    Using column position as first parameter to updateRef
> -  Got expected exception : Feature not implemented: no details.
>    Using column name as first parameter to updateRef
> -  Got expected exception : Feature not implemented: no details.
>  Positive Test21 - Test all updateXXX(excluding updateObject) methods on all the supported sql datatypes
>  Next datatype to test is SMALLINT
>    Testing updateShort on SQL type SMALLINT
> @@ -680,9 +647,7 @@
>        Got expected exception : An attempt was made to get a data value of type 'SMALLINT' from a data value of type 'java.io.InputStream'.
>    Testing updateClob on SQL type SMALLINT
>      Using column position as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'SMALLINT' from a data value of type 'java.sql.Clob'.
>      Using column name as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'SMALLINT' from a data value of type 'java.sql.Clob'.
>    Testing updateDate on SQL type SMALLINT
>      Using column position as first parameter to updateDate
>        Got expected exception : An attempt was made to put a data value of type 'java.sql.Date' into a data value of type 'SMALLINT'.
> @@ -700,9 +665,7 @@
>        Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'SMALLINT'.
>    Testing updateBlob on SQL type SMALLINT
>      Using column position as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'SMALLINT' from a data value of type 'java.sql.Blob'.
>      Using column name as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'SMALLINT' from a data value of type 'java.sql.Blob'.
>    Testing updateBoolean on SQL type SMALLINT
>      Using column position as first parameter to updateBoolean
>      Using column name as first parameter to updateBoolean
> @@ -711,14 +674,10 @@
>      Using column name as first parameter to updateNull
>    Testing updateArray on SQL type SMALLINT
>      Using column position as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>    Testing updateRef on SQL type SMALLINT
>      Using column position as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>  Next datatype to test is INTEGER
>    Testing updateShort on SQL type INTEGER
>      Using column position as first parameter to updateShort
> @@ -766,9 +725,7 @@
>        Got expected exception : An attempt was made to get a data value of type 'INTEGER' from a data value of type 'java.io.InputStream'.
>    Testing updateClob on SQL type INTEGER
>      Using column position as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'INTEGER' from a data value of type 'java.sql.Clob'.
>      Using column name as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'INTEGER' from a data value of type 'java.sql.Clob'.
>    Testing updateDate on SQL type INTEGER
>      Using column position as first parameter to updateDate
>        Got expected exception : An attempt was made to put a data value of type 'java.sql.Date' into a data value of type 'INTEGER'.
> @@ -786,9 +743,7 @@
>        Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'INTEGER'.
>    Testing updateBlob on SQL type INTEGER
>      Using column position as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'INTEGER' from a data value of type 'java.sql.Blob'.
>      Using column name as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'INTEGER' from a data value of type 'java.sql.Blob'.
>    Testing updateBoolean on SQL type INTEGER
>      Using column position as first parameter to updateBoolean
>      Using column name as first parameter to updateBoolean
> @@ -797,14 +752,10 @@
>      Using column name as first parameter to updateNull
>    Testing updateArray on SQL type INTEGER
>      Using column position as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>    Testing updateRef on SQL type INTEGER
>      Using column position as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>  Next datatype to test is BIGINT
>    Testing updateShort on SQL type BIGINT
>      Using column position as first parameter to updateShort
> @@ -852,9 +803,7 @@
>        Got expected exception : An attempt was made to get a data value of type 'BIGINT' from a data value of type 'java.io.InputStream'.
>    Testing updateClob on SQL type BIGINT
>      Using column position as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'BIGINT' from a data value of type 'java.sql.Clob'.
>      Using column name as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'BIGINT' from a data value of type 'java.sql.Clob'.
>    Testing updateDate on SQL type BIGINT
>      Using column position as first parameter to updateDate
>        Got expected exception : An attempt was made to put a data value of type 'java.sql.Date' into a data value of type 'BIGINT'.
> @@ -872,9 +821,7 @@
>        Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'BIGINT'.
>    Testing updateBlob on SQL type BIGINT
>      Using column position as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'BIGINT' from a data value of type 'java.sql.Blob'.
>      Using column name as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'BIGINT' from a data value of type 'java.sql.Blob'.
>    Testing updateBoolean on SQL type BIGINT
>      Using column position as first parameter to updateBoolean
>      Using column name as first parameter to updateBoolean
> @@ -883,14 +830,10 @@
>      Using column name as first parameter to updateNull
>    Testing updateArray on SQL type BIGINT
>      Using column position as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>    Testing updateRef on SQL type BIGINT
>      Using column position as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>  Next datatype to test is DECIMAL(10,5)
>    Testing updateShort on SQL type DECIMAL(10,5)
>      Using column position as first parameter to updateShort
> @@ -938,9 +881,7 @@
>        Got expected exception : An attempt was made to get a data value of type 'DECIMAL' from a data value of type 'java.io.InputStream'.
>    Testing updateClob on SQL type DECIMAL(10,5)
>      Using column position as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'DECIMAL' from a data value of type 'java.sql.Clob'.
>      Using column name as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'DECIMAL' from a data value of type 'java.sql.Clob'.
>    Testing updateDate on SQL type DECIMAL(10,5)
>      Using column position as first parameter to updateDate
>        Got expected exception : An attempt was made to put a data value of type 'java.sql.Date' into a data value of type 'DECIMAL'.
> @@ -958,9 +899,7 @@
>        Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'DECIMAL'.
>    Testing updateBlob on SQL type DECIMAL(10,5)
>      Using column position as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'DECIMAL' from a data value of type 'java.sql.Blob'.
>      Using column name as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'DECIMAL' from a data value of type 'java.sql.Blob'.
>    Testing updateBoolean on SQL type DECIMAL(10,5)
>      Using column position as first parameter to updateBoolean
>      Using column name as first parameter to updateBoolean
> @@ -969,14 +908,10 @@
>      Using column name as first parameter to updateNull
>    Testing updateArray on SQL type DECIMAL(10,5)
>      Using column position as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>    Testing updateRef on SQL type DECIMAL(10,5)
>      Using column position as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>  Next datatype to test is REAL
>    Testing updateShort on SQL type REAL
>      Using column position as first parameter to updateShort
> @@ -1024,9 +959,7 @@
>        Got expected exception : An attempt was made to get a data value of type 'REAL' from a data value of type 'java.io.InputStream'.
>    Testing updateClob on SQL type REAL
>      Using column position as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'REAL' from a data value of type 'java.sql.Clob'.
>      Using column name as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'REAL' from a data value of type 'java.sql.Clob'.
>    Testing updateDate on SQL type REAL
>      Using column position as first parameter to updateDate
>        Got expected exception : An attempt was made to put a data value of type 'java.sql.Date' into a data value of type 'REAL'.
> @@ -1044,9 +977,7 @@
>        Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'REAL'.
>    Testing updateBlob on SQL type REAL
>      Using column position as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'REAL' from a data value of type 'java.sql.Blob'.
>      Using column name as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'REAL' from a data value of type 'java.sql.Blob'.
>    Testing updateBoolean on SQL type REAL
>      Using column position as first parameter to updateBoolean
>      Using column name as first parameter to updateBoolean
> @@ -1055,14 +986,10 @@
>      Using column name as first parameter to updateNull
>    Testing updateArray on SQL type REAL
>      Using column position as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>    Testing updateRef on SQL type REAL
>      Using column position as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>  Next datatype to test is DOUBLE
>    Testing updateShort on SQL type DOUBLE
>      Using column position as first parameter to updateShort
> @@ -1110,9 +1037,7 @@
>        Got expected exception : An attempt was made to get a data value of type 'DOUBLE' from a data value of type 'java.io.InputStream'.
>    Testing updateClob on SQL type DOUBLE
>      Using column position as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'DOUBLE' from a data value of type 'java.sql.Clob'.
>      Using column name as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'DOUBLE' from a data value of type 'java.sql.Clob'.
>    Testing updateDate on SQL type DOUBLE
>      Using column position as first parameter to updateDate
>        Got expected exception : An attempt was made to put a data value of type 'java.sql.Date' into a data value of type 'DOUBLE'.
> @@ -1130,9 +1055,7 @@
>        Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'DOUBLE'.
>    Testing updateBlob on SQL type DOUBLE
>      Using column position as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'DOUBLE' from a data value of type 'java.sql.Blob'.
>      Using column name as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'DOUBLE' from a data value of type 'java.sql.Blob'.
>    Testing updateBoolean on SQL type DOUBLE
>      Using column position as first parameter to updateBoolean
>      Using column name as first parameter to updateBoolean
> @@ -1141,14 +1064,10 @@
>      Using column name as first parameter to updateNull
>    Testing updateArray on SQL type DOUBLE
>      Using column position as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>    Testing updateRef on SQL type DOUBLE
>      Using column position as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>  Next datatype to test is CHAR(60)
>    Testing updateShort on SQL type CHAR(60)
>      Using column position as first parameter to updateShort
> @@ -1190,9 +1109,7 @@
>        Got expected exception : An attempt was made to get a data value of type 'CHAR' from a data value of type 'java.io.InputStream'.
>    Testing updateClob on SQL type CHAR(60)
>      Using column position as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'CHAR' from a data value of type 'java.sql.Clob'.
>      Using column name as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'CHAR' from a data value of type 'java.sql.Clob'.
>    Testing updateDate on SQL type CHAR(60)
>      Using column position as first parameter to updateDate
>      Using column name as first parameter to updateDate
> @@ -1204,9 +1121,7 @@
>      Using column name as first parameter to updateTimestamp
>    Testing updateBlob on SQL type CHAR(60)
>      Using column position as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'CHAR' from a data value of type 'java.sql.Blob'.
>      Using column name as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'CHAR' from a data value of type 'java.sql.Blob'.
>    Testing updateBoolean on SQL type CHAR(60)
>      Using column position as first parameter to updateBoolean
>      Using column name as first parameter to updateBoolean
> @@ -1215,14 +1130,10 @@
>      Using column name as first parameter to updateNull
>    Testing updateArray on SQL type CHAR(60)
>      Using column position as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>    Testing updateRef on SQL type CHAR(60)
>      Using column position as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>  Next datatype to test is VARCHAR(60)
>    Testing updateShort on SQL type VARCHAR(60)
>      Using column position as first parameter to updateShort
> @@ -1264,9 +1175,7 @@
>        Got expected exception : An attempt was made to get a data value of type 'VARCHAR' from a data value of type 'java.io.InputStream'.
>    Testing updateClob on SQL type VARCHAR(60)
>      Using column position as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'VARCHAR' from a data value of type 'java.sql.Clob'.
>      Using column name as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'VARCHAR' from a data value of type 'java.sql.Clob'.
>    Testing updateDate on SQL type VARCHAR(60)
>      Using column position as first parameter to updateDate
>      Using column name as first parameter to updateDate
> @@ -1278,9 +1187,7 @@
>      Using column name as first parameter to updateTimestamp
>    Testing updateBlob on SQL type VARCHAR(60)
>      Using column position as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'VARCHAR' from a data value of type 'java.sql.Blob'.
>      Using column name as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'VARCHAR' from a data value of type 'java.sql.Blob'.
>    Testing updateBoolean on SQL type VARCHAR(60)
>      Using column position as first parameter to updateBoolean
>      Using column name as first parameter to updateBoolean
> @@ -1289,14 +1196,10 @@
>      Using column name as first parameter to updateNull
>    Testing updateArray on SQL type VARCHAR(60)
>      Using column position as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>    Testing updateRef on SQL type VARCHAR(60)
>      Using column position as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>  Next datatype to test is LONG VARCHAR
>    Testing updateShort on SQL type LONG VARCHAR
>      Using column position as first parameter to updateShort
> @@ -1338,9 +1241,7 @@
>        Got expected exception : An attempt was made to get a data value of type 'LONG VARCHAR' from a data value of type 'java.io.InputStream'.
>    Testing updateClob on SQL type LONG VARCHAR
>      Using column position as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'LONG VARCHAR' from a data value of type 'java.sql.Clob'.
>      Using column name as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'LONG VARCHAR' from a data value of type 'java.sql.Clob'.
>    Testing updateDate on SQL type LONG VARCHAR
>      Using column position as first parameter to updateDate
>      Using column name as first parameter to updateDate
> @@ -1352,9 +1253,7 @@
>      Using column name as first parameter to updateTimestamp
>    Testing updateBlob on SQL type LONG VARCHAR
>      Using column position as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'LONG VARCHAR' from a data value of type 'java.sql.Blob'.
>      Using column name as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'LONG VARCHAR' from a data value of type 'java.sql.Blob'.
>    Testing updateBoolean on SQL type LONG VARCHAR
>      Using column position as first parameter to updateBoolean
>      Using column name as first parameter to updateBoolean
> @@ -1363,14 +1262,10 @@
>      Using column name as first parameter to updateNull
>    Testing updateArray on SQL type LONG VARCHAR
>      Using column position as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>    Testing updateRef on SQL type LONG VARCHAR
>      Using column position as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>  Next datatype to test is CHAR(2) FOR BIT DATA
>    Testing updateShort on SQL type CHAR(2) FOR BIT DATA
>      Using column position as first parameter to updateShort
> @@ -1430,9 +1325,7 @@
>      Using column name as first parameter to updateBinaryStream
>    Testing updateClob on SQL type CHAR(2) FOR BIT DATA
>      Using column position as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'CHAR () FOR BIT DATA' from a data value of type 'java.sql.Clob'.
>      Using column name as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'CHAR () FOR BIT DATA' from a data value of type 'java.sql.Clob'.
>    Testing updateDate on SQL type CHAR(2) FOR BIT DATA
>      Using column position as first parameter to updateDate
>        Got expected exception : An attempt was made to put a data value of type 'java.sql.Date' into a data value of type 'CHAR () FOR BIT DATA'.
> @@ -1450,9 +1343,7 @@
>        Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'CHAR () FOR BIT DATA'.
>    Testing updateBlob on SQL type CHAR(2) FOR BIT DATA
>      Using column position as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'CHAR () FOR BIT DATA' from a data value of type 'java.sql.Blob'.
>      Using column name as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'CHAR () FOR BIT DATA' from a data value of type 'java.sql.Blob'.
>    Testing updateBoolean on SQL type CHAR(2) FOR BIT DATA
>      Using column position as first parameter to updateBoolean
>        Got expected exception : An attempt was made to put a data value of type 'boolean' into a data value of type 'CHAR () FOR BIT DATA'.
> @@ -1463,14 +1354,10 @@
>      Using column name as first parameter to updateNull
>    Testing updateArray on SQL type CHAR(2) FOR BIT DATA
>      Using column position as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>    Testing updateRef on SQL type CHAR(2) FOR BIT DATA
>      Using column position as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>  Next datatype to test is VARCHAR(2) FOR BIT DATA
>    Testing updateShort on SQL type VARCHAR(2) FOR BIT DATA
>      Using column position as first parameter to updateShort
> @@ -1530,9 +1417,7 @@
>      Using column name as first parameter to updateBinaryStream
>    Testing updateClob on SQL type VARCHAR(2) FOR BIT DATA
>      Using column position as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'VARCHAR () FOR BIT DATA' from a data value of type 'java.sql.Clob'.
>      Using column name as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'VARCHAR () FOR BIT DATA' from a data value of type 'java.sql.Clob'.
>    Testing updateDate on SQL type VARCHAR(2) FOR BIT DATA
>      Using column position as first parameter to updateDate
>        Got expected exception : An attempt was made to put a data value of type 'java.sql.Date' into a data value of type 'VARCHAR () FOR BIT DATA'.
> @@ -1550,9 +1435,7 @@
>        Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'VARCHAR () FOR BIT DATA'.
>    Testing updateBlob on SQL type VARCHAR(2) FOR BIT DATA
>      Using column position as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'VARCHAR () FOR BIT DATA' from a data value of type 'java.sql.Blob'.
>      Using column name as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'VARCHAR () FOR BIT DATA' from a data value of type 'java.sql.Blob'.
>    Testing updateBoolean on SQL type VARCHAR(2) FOR BIT DATA
>      Using column position as first parameter to updateBoolean
>        Got expected exception : An attempt was made to put a data value of type 'boolean' into a data value of type 'VARCHAR () FOR BIT DATA'.
> @@ -1563,14 +1446,10 @@
>      Using column name as first parameter to updateNull
>    Testing updateArray on SQL type VARCHAR(2) FOR BIT DATA
>      Using column position as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>    Testing updateRef on SQL type VARCHAR(2) FOR BIT DATA
>      Using column position as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>  Next datatype to test is LONG VARCHAR FOR BIT DATA
>    Testing updateShort on SQL type LONG VARCHAR FOR BIT DATA
>      Using column position as first parameter to updateShort
> @@ -1630,9 +1509,7 @@
>      Using column name as first parameter to updateBinaryStream
>    Testing updateClob on SQL type LONG VARCHAR FOR BIT DATA
>      Using column position as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'LONG VARCHAR FOR BIT DATA' from a data value of type 'java.sql.Clob'.
>      Using column name as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'LONG VARCHAR FOR BIT DATA' from a data value of type 'java.sql.Clob'.
>    Testing updateDate on SQL type LONG VARCHAR FOR BIT DATA
>      Using column position as first parameter to updateDate
>        Got expected exception : An attempt was made to put a data value of type 'java.sql.Date' into a data value of type 'LONG VARCHAR FOR BIT DATA'.
> @@ -1650,9 +1527,7 @@
>        Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'LONG VARCHAR FOR BIT DATA'.
>    Testing updateBlob on SQL type LONG VARCHAR FOR BIT DATA
>      Using column position as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'LONG VARCHAR FOR BIT DATA' from a data value of type 'java.sql.Blob'.
>      Using column name as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'LONG VARCHAR FOR BIT DATA' from a data value of type 'java.sql.Blob'.
>    Testing updateBoolean on SQL type LONG VARCHAR FOR BIT DATA
>      Using column position as first parameter to updateBoolean
>        Got expected exception : An attempt was made to put a data value of type 'boolean' into a data value of type 'LONG VARCHAR FOR BIT DATA'.
> @@ -1663,14 +1538,10 @@
>      Using column name as first parameter to updateNull
>    Testing updateArray on SQL type LONG VARCHAR FOR BIT DATA
>      Using column position as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>    Testing updateRef on SQL type LONG VARCHAR FOR BIT DATA
>      Using column position as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>  Next datatype to test is CLOB(1k)
>    Testing updateShort on SQL type CLOB(1k)
>      Using column position as first parameter to updateShort
> @@ -1746,9 +1617,7 @@
>        Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'CLOB'.
>    Testing updateBlob on SQL type CLOB(1k)
>      Using column position as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'CLOB' from a data value of type 'java.sql.Blob'.
>      Using column name as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'CLOB' from a data value of type 'java.sql.Blob'.
>    Testing updateBoolean on SQL type CLOB(1k)
>      Using column position as first parameter to updateBoolean
>        Got expected exception : An attempt was made to put a data value of type 'boolean' into a data value of type 'CLOB'.
> @@ -1759,14 +1628,10 @@
>      Using column name as first parameter to updateNull
>    Testing updateArray on SQL type CLOB(1k)
>      Using column position as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>    Testing updateRef on SQL type CLOB(1k)
>      Using column position as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>  Next datatype to test is DATE
>    Testing updateShort on SQL type DATE
>      Using column position as first parameter to updateShort
> @@ -1830,9 +1695,7 @@
>        Got expected exception : An attempt was made to get a data value of type 'DATE' from a data value of type 'java.io.InputStream'.
>    Testing updateClob on SQL type DATE
>      Using column position as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'DATE' from a data value of type 'java.sql.Clob'.
>      Using column name as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'DATE' from a data value of type 'java.sql.Clob'.
>    Testing updateDate on SQL type DATE
>      Using column position as first parameter to updateDate
>      Using column name as first parameter to updateDate
> @@ -1846,9 +1709,7 @@
>      Using column name as first parameter to updateTimestamp
>    Testing updateBlob on SQL type DATE
>      Using column position as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'DATE' from a data value of type 'java.sql.Blob'.
>      Using column name as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'DATE' from a data value of type 'java.sql.Blob'.
>    Testing updateBoolean on SQL type DATE
>      Using column position as first parameter to updateBoolean
>        Got expected exception : An attempt was made to put a data value of type 'boolean' into a data value of type 'DATE'.
> @@ -1859,14 +1720,10 @@
>      Using column name as first parameter to updateNull
>    Testing updateArray on SQL type DATE
>      Using column position as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>    Testing updateRef on SQL type DATE
>      Using column position as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>  Next datatype to test is TIME
>    Testing updateShort on SQL type TIME
>      Using column position as first parameter to updateShort
> @@ -1930,9 +1787,7 @@
>        Got expected exception : An attempt was made to get a data value of type 'TIME' from a data value of type 'java.io.InputStream'.
>    Testing updateClob on SQL type TIME
>      Using column position as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'TIME' from a data value of type 'java.sql.Clob'.
>      Using column name as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'TIME' from a data value of type 'java.sql.Clob'.
>    Testing updateDate on SQL type TIME
>      Using column position as first parameter to updateDate
>        Got expected exception : An attempt was made to put a data value of type 'java.sql.Date' into a data value of type 'TIME'.
> @@ -1946,9 +1801,7 @@
>      Using column name as first parameter to updateTimestamp
>    Testing updateBlob on SQL type TIME
>      Using column position as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'TIME' from a data value of type 'java.sql.Blob'.
>      Using column name as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'TIME' from a data value of type 'java.sql.Blob'.
>    Testing updateBoolean on SQL type TIME
>      Using column position as first parameter to updateBoolean
>        Got expected exception : An attempt was made to put a data value of type 'boolean' into a data value of type 'TIME'.
> @@ -1959,14 +1812,10 @@
>      Using column name as first parameter to updateNull
>    Testing updateArray on SQL type TIME
>      Using column position as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>    Testing updateRef on SQL type TIME
>      Using column position as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>  Next datatype to test is TIMESTAMP
>    Testing updateShort on SQL type TIMESTAMP
>      Using column position as first parameter to updateShort
> @@ -2030,9 +1879,7 @@
>        Got expected exception : An attempt was made to get a data value of type 'TIMESTAMP' from a data value of type 'java.io.InputStream'.
>    Testing updateClob on SQL type TIMESTAMP
>      Using column position as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'TIMESTAMP' from a data value of type 'java.sql.Clob'.
>      Using column name as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'TIMESTAMP' from a data value of type 'java.sql.Clob'.
>    Testing updateDate on SQL type TIMESTAMP
>      Using column position as first parameter to updateDate
>      Using column name as first parameter to updateDate
> @@ -2044,9 +1891,7 @@
>      Using column name as first parameter to updateTimestamp
>    Testing updateBlob on SQL type TIMESTAMP
>      Using column position as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'TIMESTAMP' from a data value of type 'java.sql.Blob'.
>      Using column name as first parameter to updateBlob
> -      Got expected exception : An attempt was made to get a data value of type 'TIMESTAMP' from a data value of type 'java.sql.Blob'.
>    Testing updateBoolean on SQL type TIMESTAMP
>      Using column position as first parameter to updateBoolean
>        Got expected exception : An attempt was made to put a data value of type 'boolean' into a data value of type 'TIMESTAMP'.
> @@ -2057,14 +1902,10 @@
>      Using column name as first parameter to updateNull
>    Testing updateArray on SQL type TIMESTAMP
>      Using column position as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>    Testing updateRef on SQL type TIMESTAMP
>      Using column position as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>  Next datatype to test is BLOB(1k)
>    Testing updateShort on SQL type BLOB(1k)
>      Using column position as first parameter to updateShort
> @@ -2124,9 +1965,7 @@
>      Using column name as first parameter to updateBinaryStream
>    Testing updateClob on SQL type BLOB(1k)
>      Using column position as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'BLOB' from a data value of type 'java.sql.Clob'.
>      Using column name as first parameter to updateClob
> -      Got expected exception : An attempt was made to get a data value of type 'BLOB' from a data value of type 'java.sql.Clob'.
>    Testing updateDate on SQL type BLOB(1k)
>      Using column position as first parameter to updateDate
>        Got expected exception : An attempt was made to put a data value of type 'java.sql.Date' into a data value of type 'BLOB'.
> @@ -2155,14 +1994,10 @@
>      Using column name as first parameter to updateNull
>    Testing updateArray on SQL type BLOB(1k)
>      Using column position as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateArray
> -      Got expected exception : Feature not implemented: no details.
>    Testing updateRef on SQL type BLOB(1k)
>      Using column position as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>      Using column name as first parameter to updateRef
> -      Got expected exception : Feature not implemented: no details.
>  Positive Test22 - Test updateObject method
>  Next datatype to test is SMALLINT
>    updateObject with column position & Short object as parameters
> @@ -2183,10 +2018,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'byte[]' into a data value of type 'SMALLINT'.
>    updateObject with column name & bytes[] array as parameters
>      Got expected exception : An attempt was made to put a data value of type 'byte[]' into a data value of type 'SMALLINT'.
> -  updateObject with column position & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'SMALLINT' from a data value of type 'java.sql.Clob'.
> -  updateObject with column name & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'SMALLINT' from a data value of type 'java.sql.Clob'.
>    updateObject with column position & Date object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Date' into a data value of type 'SMALLINT'.
>    updateObject with column name & Date object as parameters
> @@ -2199,10 +2030,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'SMALLINT'.
>    updateObject with column name & TimeStamp object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'SMALLINT'.
> -  updateObject with column position & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'SMALLINT' from a data value of type 'java.sql.Blob'.
> -  updateObject with column name & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'SMALLINT' from a data value of type 'java.sql.Blob'.
>    updateObject with column position & Boolean object as parameters
>    updateObject with column name & Boolean object as parameters
>    updateObject with column position & null as parameters
> @@ -2226,10 +2053,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'byte[]' into a data value of type 'INTEGER'.
>    updateObject with column name & bytes[] array as parameters
>      Got expected exception : An attempt was made to put a data value of type 'byte[]' into a data value of type 'INTEGER'.
> -  updateObject with column position & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'INTEGER' from a data value of type 'java.sql.Clob'.
> -  updateObject with column name & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'INTEGER' from a data value of type 'java.sql.Clob'.
>    updateObject with column position & Date object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Date' into a data value of type 'INTEGER'.
>    updateObject with column name & Date object as parameters
> @@ -2242,10 +2065,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'INTEGER'.
>    updateObject with column name & TimeStamp object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'INTEGER'.
> -  updateObject with column position & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'INTEGER' from a data value of type 'java.sql.Blob'.
> -  updateObject with column name & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'INTEGER' from a data value of type 'java.sql.Blob'.
>    updateObject with column position & Boolean object as parameters
>    updateObject with column name & Boolean object as parameters
>    updateObject with column position & null as parameters
> @@ -2269,10 +2088,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'byte[]' into a data value of type 'BIGINT'.
>    updateObject with column name & bytes[] array as parameters
>      Got expected exception : An attempt was made to put a data value of type 'byte[]' into a data value of type 'BIGINT'.
> -  updateObject with column position & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'BIGINT' from a data value of type 'java.sql.Clob'.
> -  updateObject with column name & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'BIGINT' from a data value of type 'java.sql.Clob'.
>    updateObject with column position & Date object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Date' into a data value of type 'BIGINT'.
>    updateObject with column name & Date object as parameters
> @@ -2285,10 +2100,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'BIGINT'.
>    updateObject with column name & TimeStamp object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'BIGINT'.
> -  updateObject with column position & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'BIGINT' from a data value of type 'java.sql.Blob'.
> -  updateObject with column name & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'BIGINT' from a data value of type 'java.sql.Blob'.
>    updateObject with column position & Boolean object as parameters
>    updateObject with column name & Boolean object as parameters
>    updateObject with column position & null as parameters
> @@ -2312,10 +2123,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'byte[]' into a data value of type 'DECIMAL'.
>    updateObject with column name & bytes[] array as parameters
>      Got expected exception : An attempt was made to put a data value of type 'byte[]' into a data value of type 'DECIMAL'.
> -  updateObject with column position & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'DECIMAL' from a data value of type 'java.sql.Clob'.
> -  updateObject with column name & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'DECIMAL' from a data value of type 'java.sql.Clob'.
>    updateObject with column position & Date object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Date' into a data value of type 'DECIMAL'.
>    updateObject with column name & Date object as parameters
> @@ -2328,10 +2135,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'DECIMAL'.
>    updateObject with column name & TimeStamp object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'DECIMAL'.
> -  updateObject with column position & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'DECIMAL' from a data value of type 'java.sql.Blob'.
> -  updateObject with column name & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'DECIMAL' from a data value of type 'java.sql.Blob'.
>    updateObject with column position & Boolean object as parameters
>    updateObject with column name & Boolean object as parameters
>    updateObject with column position & null as parameters
> @@ -2355,10 +2158,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'byte[]' into a data value of type 'REAL'.
>    updateObject with column name & bytes[] array as parameters
>      Got expected exception : An attempt was made to put a data value of type 'byte[]' into a data value of type 'REAL'.
> -  updateObject with column position & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'REAL' from a data value of type 'java.sql.Clob'.
> -  updateObject with column name & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'REAL' from a data value of type 'java.sql.Clob'.
>    updateObject with column position & Date object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Date' into a data value of type 'REAL'.
>    updateObject with column name & Date object as parameters
> @@ -2371,10 +2170,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'REAL'.
>    updateObject with column name & TimeStamp object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'REAL'.
> -  updateObject with column position & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'REAL' from a data value of type 'java.sql.Blob'.
> -  updateObject with column name & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'REAL' from a data value of type 'java.sql.Blob'.
>    updateObject with column position & Boolean object as parameters
>    updateObject with column name & Boolean object as parameters
>    updateObject with column position & null as parameters
> @@ -2398,10 +2193,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'byte[]' into a data value of type 'DOUBLE'.
>    updateObject with column name & bytes[] array as parameters
>      Got expected exception : An attempt was made to put a data value of type 'byte[]' into a data value of type 'DOUBLE'.
> -  updateObject with column position & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'DOUBLE' from a data value of type 'java.sql.Clob'.
> -  updateObject with column name & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'DOUBLE' from a data value of type 'java.sql.Clob'.
>    updateObject with column position & Date object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Date' into a data value of type 'DOUBLE'.
>    updateObject with column name & Date object as parameters
> @@ -2414,10 +2205,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'DOUBLE'.
>    updateObject with column name & TimeStamp object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'DOUBLE'.
> -  updateObject with column position & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'DOUBLE' from a data value of type 'java.sql.Blob'.
> -  updateObject with column name & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'DOUBLE' from a data value of type 'java.sql.Blob'.
>    updateObject with column position & Boolean object as parameters
>    updateObject with column name & Boolean object as parameters
>    updateObject with column position & null as parameters
> @@ -2439,20 +2226,12 @@
>    updateObject with column name & String object as parameters
>    updateObject with column position & bytes[] array as parameters
>    updateObject with column name & bytes[] array as parameters
> -  updateObject with column position & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'CHAR' from a data value of type 'java.sql.Clob'.
> -  updateObject with column name & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'CHAR' from a data value of type 'java.sql.Clob'.
>    updateObject with column position & Date object as parameters
>    updateObject with column name & Date object as parameters
>    updateObject with column position & Time object as parameters
>    updateObject with column name & Time object as parameters
>    updateObject with column position & TimeStamp object as parameters
>    updateObject with column name & TimeStamp object as parameters
> -  updateObject with column position & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'CHAR' from a data value of type 'java.sql.Blob'.
> -  updateObject with column name & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'CHAR' from a data value of type 'java.sql.Blob'.
>    updateObject with column position & Boolean object as parameters
>    updateObject with column name & Boolean object as parameters
>    updateObject with column position & null as parameters
> @@ -2474,20 +2253,12 @@
>    updateObject with column name & String object as parameters
>    updateObject with column position & bytes[] array as parameters
>    updateObject with column name & bytes[] array as parameters
> -  updateObject with column position & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'VARCHAR' from a data value of type 'java.sql.Clob'.
> -  updateObject with column name & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'VARCHAR' from a data value of type 'java.sql.Clob'.
>    updateObject with column position & Date object as parameters
>    updateObject with column name & Date object as parameters
>    updateObject with column position & Time object as parameters
>    updateObject with column name & Time object as parameters
>    updateObject with column position & TimeStamp object as parameters
>    updateObject with column name & TimeStamp object as parameters
> -  updateObject with column position & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'VARCHAR' from a data value of type 'java.sql.Blob'.
> -  updateObject with column name & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'VARCHAR' from a data value of type 'java.sql.Blob'.
>    updateObject with column position & Boolean object as parameters
>    updateObject with column name & Boolean object as parameters
>    updateObject with column position & null as parameters
> @@ -2509,20 +2280,12 @@
>    updateObject with column name & String object as parameters
>    updateObject with column position & bytes[] array as parameters
>    updateObject with column name & bytes[] array as parameters
> -  updateObject with column position & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'LONG VARCHAR' from a data value of type 'java.sql.Clob'.
> -  updateObject with column name & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'LONG VARCHAR' from a data value of type 'java.sql.Clob'.
>    updateObject with column position & Date object as parameters
>    updateObject with column name & Date object as parameters
>    updateObject with column position & Time object as parameters
>    updateObject with column name & Time object as parameters
>    updateObject with column position & TimeStamp object as parameters
>    updateObject with column name & TimeStamp object as parameters
> -  updateObject with column position & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'LONG VARCHAR' from a data value of type 'java.sql.Blob'.
> -  updateObject with column name & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'LONG VARCHAR' from a data value of type 'java.sql.Blob'.
>    updateObject with column position & Boolean object as parameters
>    updateObject with column name & Boolean object as parameters
>    updateObject with column position & null as parameters
> @@ -2558,10 +2321,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'java.lang.String' into a data value of type 'CHAR () FOR BIT DATA'.
>    updateObject with column position & bytes[] array as parameters
>    updateObject with column name & bytes[] array as parameters
> -  updateObject with column position & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'CHAR () FOR BIT DATA' from a data value of type 'java.sql.Clob'.
> -  updateObject with column name & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'CHAR () FOR BIT DATA' from a data value of type 'java.sql.Clob'.
>    updateObject with column position & Date object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Date' into a data value of type 'CHAR () FOR BIT DATA'.
>    updateObject with column name & Date object as parameters
> @@ -2574,10 +2333,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'CHAR () FOR BIT DATA'.
>    updateObject with column name & TimeStamp object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'CHAR () FOR BIT DATA'.
> -  updateObject with column position & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'CHAR () FOR BIT DATA' from a data value of type 'java.sql.Blob'.
> -  updateObject with column name & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'CHAR () FOR BIT DATA' from a data value of type 'java.sql.Blob'.
>    updateObject with column position & Boolean object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'boolean' into a data value of type 'CHAR () FOR BIT DATA'.
>    updateObject with column name & Boolean object as parameters
> @@ -2615,10 +2370,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'java.lang.String' into a data value of type 'VARCHAR () FOR BIT DATA'.
>    updateObject with column position & bytes[] array as parameters
>    updateObject with column name & bytes[] array as parameters
> -  updateObject with column position & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'VARCHAR () FOR BIT DATA' from a data value of type 'java.sql.Clob'.
> -  updateObject with column name & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'VARCHAR () FOR BIT DATA' from a data value of type 'java.sql.Clob'.
>    updateObject with column position & Date object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Date' into a data value of type 'VARCHAR () FOR BIT DATA'.
>    updateObject with column name & Date object as parameters
> @@ -2631,10 +2382,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'VARCHAR () FOR BIT DATA'.
>    updateObject with column name & TimeStamp object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'VARCHAR () FOR BIT DATA'.
> -  updateObject with column position & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'VARCHAR () FOR BIT DATA' from a data value of type 'java.sql.Blob'.
> -  updateObject with column name & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'VARCHAR () FOR BIT DATA' from a data value of type 'java.sql.Blob'.
>    updateObject with column position & Boolean object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'boolean' into a data value of type 'VARCHAR () FOR BIT DATA'.
>    updateObject with column name & Boolean object as parameters
> @@ -2672,10 +2419,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'java.lang.String' into a data value of type 'LONG VARCHAR FOR BIT DATA'.
>    updateObject with column position & bytes[] array as parameters
>    updateObject with column name & bytes[] array as parameters
> -  updateObject with column position & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'LONG VARCHAR FOR BIT DATA' from a data value of type 'java.sql.Clob'.
> -  updateObject with column name & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'LONG VARCHAR FOR BIT DATA' from a data value of type 'java.sql.Clob'.
>    updateObject with column position & Date object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Date' into a data value of type 'LONG VARCHAR FOR BIT DATA'.
>    updateObject with column name & Date object as parameters
> @@ -2688,10 +2431,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'LONG VARCHAR FOR BIT DATA'.
>    updateObject with column name & TimeStamp object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'LONG VARCHAR FOR BIT DATA'.
> -  updateObject with column position & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'LONG VARCHAR FOR BIT DATA' from a data value of type 'java.sql.Blob'.
> -  updateObject with column name & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'LONG VARCHAR FOR BIT DATA' from a data value of type 'java.sql.Blob'.
>    updateObject with column position & Boolean object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'boolean' into a data value of type 'LONG VARCHAR FOR BIT DATA'.
>    updateObject with column name & Boolean object as parameters
> @@ -2729,8 +2468,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'byte[]' into a data value of type 'CLOB'.
>    updateObject with column name & bytes[] array as parameters
>      Got expected exception : An attempt was made to put a data value of type 'byte[]' into a data value of type 'CLOB'.
> -  updateObject with column position & Clob object as parameters
> -  updateObject with column name & Clob object as parameters
>    updateObject with column position & Date object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Date' into a data value of type 'CLOB'.
>    updateObject with column name & Date object as parameters
> @@ -2743,10 +2480,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'CLOB'.
>    updateObject with column name & TimeStamp object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'CLOB'.
> -  updateObject with column position & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'CLOB' from a data value of type 'java.sql.Blob'.
> -  updateObject with column name & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'CLOB' from a data value of type 'java.sql.Blob'.
>    updateObject with column position & Boolean object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'boolean' into a data value of type 'CLOB'.
>    updateObject with column name & Boolean object as parameters
> @@ -2786,10 +2519,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'byte[]' into a data value of type 'DATE'.
>    updateObject with column name & bytes[] array as parameters
>      Got expected exception : An attempt was made to put a data value of type 'byte[]' into a data value of type 'DATE'.
> -  updateObject with column position & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'DATE' from a data value of type 'java.sql.Clob'.
> -  updateObject with column name & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'DATE' from a data value of type 'java.sql.Clob'.
>    updateObject with column position & Date object as parameters
>    updateObject with column name & Date object as parameters
>    updateObject with column position & Time object as parameters
> @@ -2798,10 +2527,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Time' into a data value of type 'DATE'.
>    updateObject with column position & TimeStamp object as parameters
>    updateObject with column name & TimeStamp object as parameters
> -  updateObject with column position & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'DATE' from a data value of type 'java.sql.Blob'.
> -  updateObject with column name & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'DATE' from a data value of type 'java.sql.Blob'.
>    updateObject with column position & Boolean object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'boolean' into a data value of type 'DATE'.
>    updateObject with column name & Boolean object as parameters
> @@ -2841,10 +2566,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'byte[]' into a data value of type 'TIME'.
>    updateObject with column name & bytes[] array as parameters
>      Got expected exception : An attempt was made to put a data value of type 'byte[]' into a data value of type 'TIME'.
> -  updateObject with column position & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'TIME' from a data value of type 'java.sql.Clob'.
> -  updateObject with column name & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'TIME' from a data value of type 'java.sql.Clob'.
>    updateObject with column position & Date object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Date' into a data value of type 'TIME'.
>    updateObject with column name & Date object as parameters
> @@ -2853,10 +2574,6 @@
>    updateObject with column name & Time object as parameters
>    updateObject with column position & TimeStamp object as parameters
>    updateObject with column name & TimeStamp object as parameters
> -  updateObject with column position & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'TIME' from a data value of type 'java.sql.Blob'.
> -  updateObject with column name & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'TIME' from a data value of type 'java.sql.Blob'.
>    updateObject with column position & Boolean object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'boolean' into a data value of type 'TIME'.
>    updateObject with column name & Boolean object as parameters
> @@ -2896,20 +2613,12 @@
>      Got expected exception : An attempt was made to put a data value of type 'byte[]' into a data value of type 'TIMESTAMP'.
>    updateObject with column name & bytes[] array as parameters
>      Got expected exception : An attempt was made to put a data value of type 'byte[]' into a data value of type 'TIMESTAMP'.
> -  updateObject with column position & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'TIMESTAMP' from a data value of type 'java.sql.Clob'.
> -  updateObject with column name & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'TIMESTAMP' from a data value of type 'java.sql.Clob'.
>    updateObject with column position & Date object as parameters
>    updateObject with column name & Date object as parameters
>    updateObject with column position & Time object as parameters
>    updateObject with column name & Time object as parameters
>    updateObject with column position & TimeStamp object as parameters
>    updateObject with column name & TimeStamp object as parameters
> -  updateObject with column position & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'TIMESTAMP' from a data value of type 'java.sql.Blob'.
> -  updateObject with column name & Blob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'TIMESTAMP' from a data value of type 'java.sql.Blob'.
>    updateObject with column position & Boolean object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'boolean' into a data value of type 'TIMESTAMP'.
>    updateObject with column name & Boolean object as parameters
> @@ -2947,10 +2656,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'java.lang.String' into a data value of type 'BLOB'.
>    updateObject with column position & bytes[] array as parameters
>    updateObject with column name & bytes[] array as parameters
> -  updateObject with column position & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'BLOB' from a data value of type 'java.sql.Clob'.
> -  updateObject with column name & Clob object as parameters
> -    Got expected exception : An attempt was made to get a data value of type 'BLOB' from a data value of type 'java.sql.Clob'.
>    updateObject with column position & Date object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Date' into a data value of type 'BLOB'.
>    updateObject with column name & Date object as parameters
> @@ -2963,8 +2668,6 @@
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'BLOB'.
>    updateObject with column name & TimeStamp object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'java.sql.Timestamp' into a data value of type 'BLOB'.
> -  updateObject with column position & Blob object as parameters
> -  updateObject with column name & Blob object as parameters
>    updateObject with column position & Boolean object as parameters
>      Got expected exception : An attempt was made to put a data value of type 'boolean' into a data value of type 'BLOB'.
>    updateObject with column name & Boolean object as parameters
> @@ -2987,8 +2690,6 @@
>    updateDate and then cancelRowUpdates
>    updateTime and then cancelRowUpdates
>    updateTimestamp and then cancelRowUpdates
> -  updateClob and then cancelRowUpdates
> -  updateBlob and then cancelRowUpdates
>  Positive Test24a - after updateXXX, try cancelRowUpdates and then deleteRow
>  column 1 on this row before updateInt is 1
>  column 1 on this row after updateInt is 234
> @@ -3072,7 +2773,8 @@
>  	{2,bb                  }
>  	{3,cc                  }
>  SQL State : 42X31
> -Got expected exception Column 'C2' is not in FOR UPDATE list of cursor 'SQLCUR539'.
> +Got expected exception Column 'C2' is not in FOR UPDATE list of cursor 'SQLCUR37'.
> +updateRow passed
>    Make sure the contents of table are unchanged
>  	 C1,C2
>  	 -- --
> Index: java/testing/org/apache/derbyTesting/functionTests/master/jdk14/updatableResultSet.out
> ===================================================================
> --- java/testing/org/apache/derbyTesting/functionTests/master/jdk14/updatableResultSet.out	(revision 170535)
> +++ java/testing/org/apache/derbyTesting/functionTests/master/jdk14/updatableResultSet.out	(working copy)
> @@ -13,6 +13,8 @@
>  SQL State : XJ083
>  Got expected exception 'updateRow' not allowed because the ResultSet is not an updatable ResultSet. 
>  Negative Test2 - request for scroll sensitive updatable resultset will give a read only scroll insensitive resultset
> +WARNING 01J02: Scroll sensitive cursors are not currently implemented.
> +WARNING 01J03: Scroll sensitive and scroll insensitive updatable ResultSets are not currently implemented.
>  requested TYPE_SCROLL_SENSITIVE, CONCUR_UPDATABLE but that is not supported
>  Jira issue Derby-154 : When client connects to Network Server using JCC, it incorrectly shows support for scroll sensitive updatable resultsets
>  Make sure that we got TYPE_SCROLL_INSENSITIVE? true
> @@ -42,7 +44,7 @@
>  Make sure that we got CONCUR_READ_ONLY? true
>  Jira issue Derby-159 : Warnings raised by Derby are not getting passed to the Client in Network Server Mode
>  Will see the warnings in embedded mode only
> -Expected warnings on resultset = java.sql.SQLWarning: ResultSet not updatable. Query does not qualify to generate an updatable ResultSet.
> +WARNING 01J06: ResultSet not updatable. Query does not qualify to generate an updatable ResultSet.
>  Now attempting to send a delete on a sql with no FOR UPDATE clause.
>  SQL State : XJ083
>  Got expected exception 'deleteRow' not allowed because the ResultSet is not an updatable ResultSet. 
> @@ -53,7 +55,7 @@
>  Make sure that we got CONCUR_READ_ONLY? true
>  Jira issue Derby-159 : Warnings raised by Derby are not getting passed to the Client in Network Server Mode
>  Will see the warnings in embedded mode only
> -Expected warnings on resultset = java.sql.SQLWarning: ResultSet not updatable. Query does not qualify to generate an updatable ResultSet.
> +WARNING 01J06: ResultSet not updatable. Query does not qualify to generate an updatable ResultSet.
>  Now attempting to send a delete on a sql with FOR READ ONLY clause.
>  SQL State : XJ083
>  Got expected exception 'deleteRow' not allowed because the ResultSet is not an updatable ResultSet. 
> @@ -66,8 +68,7 @@
>  SQL State : 24000
>  Got expected exception Invalid cursor state - no current row.
>  Now attempt a updateRow without first doing next on the resultset.
> -In embedded mode, updateRow will check if it is on a row or not even though no changes have been made to the row using updateXXX
> -In Network Server mode, if no updateXXX were issued before updateRow, then updateRow is a no-op and doesn't check if it is on a row or not
> +updateRow will check if it is on a row or not even though no changes have been made to the row using updateXXX
>  SQL State : 24000
>  Got expected exception Invalid cursor state - no current row.
>  ResultSet is positioned after the last row. attempt to deleteRow at this point should fail!
> @@ -126,8 +127,7 @@
>  JDBC 2.0 updatable resultset apis on this ResultSet object will pass because this is an updatable resultset
>  column 1 on this row before deleteRow is 1
>  column 2 on this row before deleteRow is aa                  
> -Since after deleteRow(), in embedded mode, ResultSet is positioned before the next row, getXXX will fail
> -In Network Server mode, the ResultSet stays on the deleted row after deleteRow and hence no error for getXXX
> +Since after deleteRow(), in embedded mode and Network Server mode using Derby Net Client, ResultSet is positioned before the next row, getXXX will fail
>  SQL State : 24000
>  Got expected exception Invalid cursor state - no current row.
>  calling deleteRow again w/o first positioning the ResultSet on the next row will fail
> @@ -140,8 +140,7 @@
>  column 1 on this row after updateInt is 234
>  column 2 on this row before updateString is aa                  
>  now updateRow on the row
> -Since after updateRow(), in embedded mode, ResultSet is positioned before the next row, getXXX will fail
> -In Network Server mode, the ResultSet stays on the updated row after updateRow and hence no error for getXXX
> +Since after updateRow(), in embedded mode and Network Server mode using Derby Net Client, ResultSet is positioned before the next row, getXXX will fail
>  SQL State : 24000
>  Got expected exception Invalid cursor state - no current row.
>  calling updateRow again w/o first positioning the ResultSet on the next row will fail
> @@ -150,11 +149,14 @@
>  Position the ResultSet with next()
>  Should be able to updateRow() on the current row now
>  Positive Test2 - even if no columns from table specified in the column list, we should be able to get updatable resultset
> +Will work in embedded mode because target table is not derived from the first column in the select list
> +Will not work in network server mode because it derives the target tabke from the first column in the select list
>  total number of rows in T1 
>  	 1
>  	 -
>  	{3}
>  column 1 on this row is 1
> +PASS!!! passed in embedded mode
>  total number of rows in T1 after one deleteRow is 
>  	 1
>  	 -
> @@ -244,16 +246,24 @@
>  	 --- ---
>  	{123,1}
>  	{123,1}
> -Positive Test8a - change the name of the resultset and see if deleteRow still works
> +Positive Test8a - change the name of the statement when the resultset is open and see if deleteRow still works
> +This test works in embedded mode since Derby can handle the change in the name of the statement with an open resultset
> +But it fails under Network Server mode because JCC and Derby Net Client do not allow statement name change when there an open resultset against it
>  change the cursor name(case sensitive name) with setCursorName and then try to deleteRow
>  change the cursor name one more time with setCursorName and then try to deleteRow
> -Positive Test8b - change the name of the resultset and see if updateRow still works
> +PASS!!! passed in embedded mode
> +Positive Test8b - change the name of the statement when the resultset is open and see if updateRow still works
> +This test works in embedded mode since Derby can handle the change in the name of the statement with an open resultset
> +But it fails under Network Server mode because JCC and Derby Net Client do not allow statement name change when there an open resultset against it
>  change the cursor name one more time with setCursorName and then try to updateRow
>  change the cursor name(case sensitive name) with setCursorName and then try to updateRow
> -Positive Test9a - using correlation name for the table in the select sql is not a problem
> +PASS!!! passed in embedded mode
> +Positive Test9a - using correlation name for the table in the select sql works in embedded mode and Network Server using Derby Net Client driver
> +Correlation name for table does not work in Network Server mode (using JCC) because the drivers construct the delete sql with the correlation name rather than the base table name
>  column 1 on this row is 1
>  now try to deleteRow
> -Positive Test9b - using correlation name for updatable column name is not allowed
> +PASS!!! passed in embedded mode
> +Positive Test9b - using correlation name for updatable columns is not allowed.
>  Table t1 has following rows
>  	 C1,C2
>  	 -- --
> @@ -283,18 +293,9 @@
>  	{11,aa                  }
>  	{2,bb                  }
>  	{3,cc                  }
> -Positive Test9c - try to updateXXX on a readonly column. Should get error
> -SQL State : 42X31
> -Got expected exception Column 'C2' is not in FOR UPDATE list of cursor 'SQLCUR17'.
> -Table t1 has following rows
> -	 C1,C2
> -	 -- --
> -	{1,aa                  }
> -	{2,bb                  }
> -	{3,cc                  }
>  Positive Test9d - try to updateXXX on a readonly column with correlation name. Should get error
>  SQL State : 42X31
> -Got expected exception Column 'COL2' is not in FOR UPDATE list of cursor 'SQLCUR18'.
> +Got expected exception Column 'COL2' is not in FOR UPDATE list of cursor 'SQLCUR17'.
>  Table t1 has following rows
>  	 C1,C2
>  	 -- --
> @@ -305,7 +306,7 @@
>  delete using first resultset
>  attempt to send deleteRow on the same row through a different resultset should throw an exception
>  SQL State : XCL08
> -Got expected exception Cursor 'SQLCUR20' is not on a row.
> +Got expected exception Cursor 'SQLCUR19' is not on a row.
>  Move to next row in the 2nd resultset and then delete using the second resultset
>  Positive Test11 - setting the fetch size to > 1 will be ignored by updatable resultset. Same as updatable cursors
>  Notice the Fetch Size in run time statistics output.
> @@ -314,7 +315,7 @@
>  Statement Name: 
>  	null
>  Statement Text: 
> -	SELECT 1, 2 FROM t1 FOR UPDATE of c1
> +	SELECT * FROM t1 FOR UPDATE of c1
>  Parse Time: 0
>  Bind Time: 0
>  Optimize Time: 0
> @@ -326,51 +327,25 @@
>  Begin Execution Timestamp : null
>  End Execution Timestamp : null
>  Statement Execution Plan Text: 
> -Project-Restrict ResultSet (3):
> +Table Scan ResultSet for T1 at read committed isolation level using exclusive row locking chosen by the optimizer
>  Number of opens = 1
>  Rows seen = 0
>  Rows filtered = 0
> -restriction = false
> -projection = true
> +Fetch Size = 1
>  	constructor time (milliseconds) = 0
>  	open time (milliseconds) = 0
>  	next time (milliseconds) = 0
>  	close time (milliseconds) = 0
> -	restriction time (milliseconds) = 0
> -	projection time (milliseconds) = 0
> -Source result set:
> -	Project-Restrict ResultSet (2):
> -	Number of opens = 1
> -	Rows seen = 0
> -	Rows filtered = 0
> -	restriction = false
> -	projection = true
> -		constructor time (milliseconds) = 0
> -		open time (milliseconds) = 0
> -		next time (milliseconds) = 0
> -		close time (milliseconds) = 0
> -		restriction time (milliseconds) = 0
> -		projection time (milliseconds) = 0
> -	Source result set:
> -		Table Scan ResultSet for T1 at read committed isolation level using exclusive row locking chosen by the optimizer
> -		Number of opens = 1
> -		Rows seen = 0
> -		Rows filtered = 0
> -		Fetch Size = 1
> -			constructor time (milliseconds) = 0
> -			open time (milliseconds) = 0
> -			next time (milliseconds) = 0
> -			close time (milliseconds) = 0
> -		scan information: 
> -			Bit set of columns fetched=All
> -			Number of columns fetched=2
> -			Number of pages visited=0
> -			Number of rows qualified=0
> -			Number of rows visited=0
> -			Scan type=heap
> -			start position: 
> -null			stop position: 
> -null			qualifiers:
> +scan information: 
> +	Bit set of columns fetched=All
> +	Number of columns fetched=2
> +	Number of pages visited=0
> +	Number of rows qualified=0
> +	Number of rows visited=0
> +	Scan type=heap
> +	start position: 
> +null	stop position: 
> +null	qualifiers:
>  None
>  statement's fetch size is 200
>  Positive Test12a - make sure delete trigger gets fired when deleteRow is issued
> @@ -3072,7 +3047,8 @@
>  	{2,bb                  }
>  	{3,cc                  }
>  SQL State : 42X31
> -Got expected exception Column 'C2' is not in FOR UPDATE list of cursor 'SQLCUR539'.
> +Got expected exception Column 'C2' is not in FOR UPDATE list of cursor 'SQLCUR37'.
> +updateRow passed
>    Make sure the contents of table are unchanged
>  	 C1,C2
>  	 -- --
> Index: java/testing/org/apache/derbyTesting/functionTests/suites/DerbyNet.exclude
> ===================================================================
> --- java/testing/org/apache/derbyTesting/functionTests/suites/DerbyNet.exclude	(revision 170535)
> +++ java/testing/org/apache/derbyTesting/functionTests/suites/DerbyNet.exclude	(working copy)
> @@ -3,8 +3,10 @@
>  # excluding batchUpdate.java for it hits a problem in networkserver ('beetle' 5561)
>  # excluding statementJdbc20.java because this tests fetch_reverse throughout the test
>  # excluding jdbcapi/testRelative.java because this is a new test contributed by Shreyas Kaushik and needs to be debugged with JCC  in order to get it running with network server
> +# excluding lang/updatableResultSet.java because changes are required in JCC Driver for this test to run correctly
>  jdbcapi/resultsetStream.java
>  lang/scrollCursors2.java
>  jdbcapi/batchUpdate.java
>  jdbcapi/statementJdbc20.java
>  jdbcapi/testRelative.java
> +lang/updatableResultSet.java
> Index: java/client/org/apache/derby/client/am/ResultSet.java
> ===================================================================
> --- java/client/org/apache/derby/client/am/ResultSet.java	(revision 170535)
> +++ java/client/org/apache/derby/client/am/ResultSet.java	(working copy)
> @@ -2368,43 +2368,75 @@
>              if (agent_.loggingEnabled()) {
>                  agent_.logWriter_.traceEntry(this, "updateRow");
>              }
> -            updateRowX();
> +            //If updateXXX were issued on the row before updateRow, then
> +            //position the ResultSet to right before the next row after updateRow
> +            if (updateRowX())
> +                isValidCursorPosition_ = false;
>          }
>      }
>  
> -    private void updateRowX() throws java.sql.SQLException {
> +    //if no updateXXX were issued before this updateRow, then return false
> +    private boolean updateRowX() throws java.sql.SQLException {
>          checkForClosedResultSet();
>          if (isOnInsertRow_ || resultSetConcurrency_ == java.sql.ResultSet.CONCUR_READ_ONLY) {
>              throw new SqlException(agent_.logWriter_, "This method cannot be invoked while the cursor is on the insert " +
>                      "row or if the concurrency of this ResultSet object is CONCUR_READ_ONLY.");
>          }
>  
> -        // No-op if none of the columns were updated and updateRow() is called, just return.
> +        //if not on a valid row, then do not accept updateXXX calls
> +        if (!isValidCursorPosition_)
> +            throw new SqlException(agent_.logWriter_, "Invalid operation to " +
> +                    "update at current cursor position");
> +
> +        // If no updateXXX has been called on this ResultSet object, then
> +        // updatedColumns_ will be null and hence no action required
>          if (updatedColumns_ == null) {
> -            return;
> +            return false;
>          }
>  
> -        if (preparedStatementForUpdate_ == null) {
> -            getPreparedStatementForUpdate();
> +        // updateXXX has been called on this ResultSet object, but check if it
> +        // has been called on the current row. If no column got updated on this
> +        // current row, then just return.
> +        boolean didAnyColumnGetUpdated = false;
> +        for (int i=0; i < updatedColumns_.length; i++) {
> +            if (columnUpdated_[i]) {
> +                didAnyColumnGetUpdated = true;
> +                break;
> +            }
>          }
> +        if (didAnyColumnGetUpdated == false)
> +            return false;
>  
> +        // User might not be updating all the updatable columns selected in the
> +        // select sql and hence every updateRow on the same ResultSet can be
> +        // potentially different than the previous one. Because of that, we
> +        // should get a new prepared statement to do updates every time
> +        getPreparedStatementForUpdate();
> +
>          // build the inputs array for the prepared statement for update
> +        int paramNumber = 0;
>          for (int i = 0; i < updatedColumns_.length; i++) {
>              if (resultSetMetaData_.sqlxUpdatable_[i] == 1) {
> +                // Since user may choose not to update all the columns in the
> +                // select list, check first if the column has been updated
> +                if (columnUpdated_[i] == false)
> +                    continue;
> +                paramNumber++;
> +
>                  // column is updated either if the updatedColumns_ entry is not null,
>                  // or if the updatedColumns_ entry is null, but columnUpdated_ boolean is
>                  // set to true, which means columns is updated to a null.
>                  if (updatedColumns_[i] != null ||
>                          (updatedColumns_[i] == null && columnUpdated_[i])) {
> -                    preparedStatementForUpdate_.setInput(i + 1, updatedColumns_[i]);
> +                    preparedStatementForUpdate_.setInput(paramNumber, updatedColumns_[i]);
>                  } else {
>                      // Check if the original column is null.  Calling CrossConverters.setObject on a null
>                      // column causes "Data Conversion" Exception.
>                      Object originalObj = getObject(i + 1);
>                      if (originalObj == null) {
> -                        preparedStatementForUpdate_.setInput(i + 1, null);
> +                        preparedStatementForUpdate_.setInput(paramNumber, null);
>                      } else {
> -                        preparedStatementForUpdate_.setInput(i + 1, agent_.crossConverters_.setObject(resultSetMetaData_.types_[i], originalObj));
> +                        preparedStatementForUpdate_.setInput(paramNumber, agent_.crossConverters_.setObject(resultSetMetaData_.types_[i], originalObj));
>                      }
>                  }
>              }
> @@ -2423,6 +2455,7 @@
>              cancelRowUpdates();
>              throw e;
>          }
> +        return true;
>      }
>  
>      public void deleteRow() throws java.sql.SQLException {
> @@ -2431,6 +2464,10 @@
>                  agent_.logWriter_.traceEntry(this, "deleteRow");
>              }
>              deleteRowX();
> +            //the cursor is not positioned on the deleted row after deleteRow.
> +            //User needs to issue ResultSet.next to reposition the ResultSet
> +            //on a valid row
> +            isValidCursorPosition_ = false;
>          }
>      }
>  
> @@ -2502,6 +2539,11 @@
>                          "row or if this ResultSet object has a concurrency of CONCUR_READ_ONLY.");
>              }
>  
> +            // if not on a valid row, then do not accept cancelRowUpdates call
> +            if (!isValidCursorPosition_)
> +                throw new SqlException(agent_.logWriter_, "Invalid operation " +
> +                        "at current cursor position.");
> +
>              // if updateRow() has already been called, then cancelRowUpdates should have
>              // no effect.  updateRowCalled_ is reset to false as soon as the cursor moves to a new row.
>              if (!updateRowCalled_) {
> @@ -3041,8 +3083,6 @@
>          boolean foundOneUpdatedColumnAlready = false;
>          String updateString = "UPDATE " + getTableName() + " SET ";
>  
> -        // The update tablename ... where current of cursorname for Cloudscape has
> -        // to provide columns as columnname1 = ?, columnname2 = ?
>          for (column = 1; column <= resultSetMetaData_.columns_; column++) {
>              if (columnUpdated_[column - 1]) {
>                  if (foundOneUpdatedColumnAlready) {
> @@ -3069,8 +3109,8 @@
>      private String buildDeleteString() throws SqlException {
>          String deleteString = "DELETE FROM ";
>  
> -        // build the update string using the server's cursor name
> -        deleteString += (getTableName() + " WHERE CURRENT OF " + getServerCursorName());
> +        // build the delete string using the server's cursor name
> +        deleteString += (getTableName() + " WHERE CURRENT OF \"" + getServerCursorName() + "\"");
>  
>          if (isRowsetCursor_) {
>              deleteString += " FOR ROW ? OF ROWSET";
> @@ -3084,12 +3124,15 @@
>          if (resultSetMetaData_.sqlxRdbnam_[0] != null &&
>                  !resultSetMetaData_.sqlxRdbnam_[0].equals(""))      // catalog
>          {
> -            tableName += resultSetMetaData_.sqlxRdbnam_[0].trim() + ".";
> +            tableName += "\"" + resultSetMetaData_.sqlxRdbnam_[0] + "\".";
>          }
> -        if (!resultSetMetaData_.sqlxSchema_[0].equals("")) {
> -            tableName += resultSetMetaData_.sqlxSchema_[0].trim() + ".";
> +        //dervied column like select 2 from t1, has null schema and table name
> +        if (resultSetMetaData_.sqlxSchema_[0] != null && !resultSetMetaData_.sqlxSchema_[0].equals("")) {
> +            tableName += "\"" + resultSetMetaData_.sqlxSchema_[0] + "\".";
>          }
> -        tableName += resultSetMetaData_.sqlxBasename_[0].trim();
> +        if (resultSetMetaData_.sqlxBasename_[0] != null) {
> +            tableName += "\"" + resultSetMetaData_.sqlxBasename_[0] + "\"";
> +        }
>          return tableName;
>      }
>  
> @@ -3157,6 +3200,11 @@
>          if (resultSetMetaData_.sqlxUpdatable_ == null || resultSetMetaData_.sqlxUpdatable_[column - 1] != 1) {
>              throw new SqlException(agent_.logWriter_, "Column not updatable");
>          }
> +
> +        //if not on a valid row, then do not accept updateXXX calls
> +        if (!isValidCursorPosition_)
> +            throw new SqlException(agent_.logWriter_, "Invalid operation to " +
> +                    "update at current cursor position");
>      }
>  
>      final void checkForValidColumnIndex(int column) throws SqlException {


Mime
View raw message