|
First, Native JDBC used to not allow the user to set the level to none,
because the JDBC documentation says that none is a special value to
represent the fact that transactions are not supported. In a v4r4 PTF
along the way we changed to allow this to work anyway, because our customer
base understands the concept of TX level none in a different light. Please
note that I do believe that the Toolbox JDBC driver still will throw an
exception on this line (but don't hold me to that).
-------------------
Now for the main issue. I don't believe you specified a release so I just
tested it on my development box to see what would happen. Everything
seemed to work just fine. What did you do that is different than these
steps?
1) I created the library to use from the green screen:
crtlib cujotest
Library CUJOTEST created.
2) I modified your program just a little. I had a TestJDBC program
already, and I qualified the TEST table references:
import java.sql.*;
public class TestJDBC10 {
public static void main(java.lang.String[] args) throws Exception {
Class.forName("com.ibm.db2.jdbc.app.DB2Driver");
Connection c = DriverManager.getConnection("jdbc:db2:*local");
// c.setTransactionIsolation(Connection.TRANSACTION_NONE);
Statement s = c.createStatement();
s.executeUpdate("CREATE TABLE CUJOTEST.TEST (ID INTEGER, DESC
CHAR(50))");
s.executeUpdate("INSERT INTO CUJOTEST.TEST VALUES (1, 'item 1')");
s.close();
c.close();
}
}
3) I ran the program from the green screen:
java TestJDBC10
4) Through interactive SQL I typed this:
select * from cujotest.test
5) This is the results:
ID DESC
1 item 1
******** End of data ********
Regards,
Richard D. Dettinger
AS/400 Java Data Access Team
"TRUE! nervous, very, very dreadfully nervous I had been and am; but why
WILL you say that I am mad?
The disease had sharpened my senses, not destroyed, not dulled them. "
- Edgar Allan Poe
"The Tell-Tale Heart"
"John Caruso" <JohnCaruso@email.com> on 01/28/2000 11:40:30 AM
Please respond to JAVA400-L@midrange.com
To: JAVA400-L@midrange.com
cc:
Subject: INSERT fails using JDBC native driver
Can anyone tell me why the following code works when the table is created
in
an SQL collection, but not in a normal library? It fails on the INSERT.
It
appears that the native JDBC driver is using a transaction isolation level
other than the default of NONE. I've tried specifically setting it to NONE
(see commented out code) only to receive this error:
java.sql.SQLException: [IBM][JDBC Driver][12025] An incorrect transaction
isolation level was specified.
When I execute the SQL statement using interactive SQL or the Client Access
Express SQL scripting utility, I do not encounter any problems.
Is there a PTF to fix this, or am I missing something?
TIA,
John Caruso
----
import java.sql.*;
public class TestJDBC {
public static void main(java.lang.String[] args) throws Exception {
Class.forName("com.ibm.db2.jdbc.app.DB2Driver");
Connection c = DriverManager.getConnection("jdbc:db2:*local");
// c.setTransactionIsolation(Connection.TRANSACTION_NONE);
Statement s = c.createStatement();
s.executeUpdate("CREATE TABLE TEST (ID INTEGER, DESC CHAR(50))");
s.executeUpdate("INSERT INTO TEST VALUES (1, 'item 1')");
s.close();
c.close();
}
}
----
Here is output when run with normal library:
java.sql.SQLException: TEST in JCARUSO not valid for operation.
com/ibm/db2/jdbc/app/DB2StatementRuntimeImpl.execDirect(ILjava/lang/String;I
I)I+12 (DB2StatementRuntimeImpl.java:90)
com/ibm/db2/jdbc/app/DB2Statement.genericDirectExecutor(Ljava/lang/String;I)
Z+147 (DB2Statement.java:754)
com/ibm/db2/jdbc/app/DB2Statement.executeUpdate(Ljava/lang/String;)I+31
DB2Statement.java:789)
TestJDBC.main([Ljava/lang/String;)V+28 (TestJDBC.java:13)
+---
| This is the JAVA/400 Mailing List!
| To submit a new message, send your mail to JAVA400-L@midrange.com.
| To subscribe to this list send email to JAVA400-L-SUB@midrange.com.
| To unsubscribe from this list send email to JAVA400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner: joe@zappie.net
+---
+---
| This is the JAVA/400 Mailing List!
| To submit a new message, send your mail to JAVA400-L@midrange.com.
| To subscribe to this list send email to JAVA400-L-SUB@midrange.com.
| To unsubscribe from this list send email to JAVA400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner: joe@zappie.net
+---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.