The other thing that is a bit confusing is how there are two different sets of attributes. One for Derby, one for UDB.

Jon

----- Original Message ----- From: "Jonathan Eric Miller" <[EMAIL PROTECTED]>
To: "Derby Discussion" <[email protected]>
Sent: Thursday, February 10, 2005 3:32 PM
Subject: Re: JDBC driver error codes documentation, where?



One thing to watch out for is that you need the trailing ";". One would think that the semi-colon would only act as a delimiter, but, you need it at the end of the URL as well.

You have my vote for making the verbose error messages default to on. Having them off by default is user/developer hostile IMHO.

Jon

----- Original Message ----- From: "Jonathan Eric Miller" <[EMAIL PROTECTED]>
To: "Derby Discussion" <[email protected]>
Sent: Thursday, February 10, 2005 9:05 AM
Subject: Re: JDBC driver error codes documentation, where?



Great, I'll give it a try, thanks!

Jon

----- Original Message ----- From: "Satheesh Bandaram" <[EMAIL PROTECTED]>
To: "Derby Discussion" <[email protected]>
Sent: Wednesday, February 09, 2005 5:52 PM
Subject: Re: JDBC driver error codes documentation, where?



Yes, you can use that property when you get a connection. Use a URL like:
'jdbc:derby:net://localhost:1527/tdb:retrieveMessagesFromServerOnGetMessage=true;user=junk;password=junk;';


Any SQLExceptions on that connection should show the message. You don't
have to do anything else extra.

Satheesh

Jonathan Eric Miller wrote:

That looks like a much better error message. Thanks!

What I'm wondering now though, is, is there an equivalent property to
the JDBC driver itself? Normally, with the other JDBC drivers that
I've been using (MySQL, MSSQL, Sybase, PostgreSQL, Oracle), it was
sufficient to just do an Exception.printStackTrace() to get a
meaningful text message of what went wrong for a SQLException. I'm
wondering if I'm still going to have to do more than that when using
the Derby driver? Personally, I think it should print out descriptive
text by default.

Jon

----- Original Message ----- From: "Satheesh Bandaram"
<[EMAIL PROTECTED]>
To: "Derby Discussion" <[email protected]>
Sent: Wednesday, February 09, 2005 4:23 PM
Subject: Re: JDBC driver error codes documentation, where?


You can get the error messages using property
retrieveMessagesFromServerOnGetMessage, which defaults to FALSE.

<satheesh> java -Dij.retrieveMessagesFromServerOnGetMessage=true
org..apache.derby.tools.ij
ij> connect 'jdbc:derby://localhost:1527/tdb' user 'junk' password
'junk';
ij>  INSERT INTO Item (name) VALUES ("Panasonic DVD Player");
ERROR 42X04: Column 'Panasonic DVD Player' is not in any table in the
FROM list or it appears within a join specification and is outside
the scope of the join specification or it appears in a HAVING clause
and is not in the GROUP BY list. If this is a CREATE or ALTER TABLE
statement then 'Panasonic DVD Player' is not a column in the target
table.
ij>

IBM actually announced contributing source code for JDBC driver by
around March 2005. I think we should make this property default to
TRUE in Apache driver, if and when it is accepted by the community.

Satheesh

Jonathan Eric Miller wrote:

Does anyone know where the error codes are listed for the JDBC driver?

 The following is the error I get in ij if I accidentally use double
quotes instead of single quotes. Why oh why doesn't IBM's JDBC driver
print intelligible error messages? I can live with it as long as
there is documentation somewhere that maps the error codes into
descriptive text, but, where is it?

 Any news on IBM turning over the source code for the JDBC driver?

 ij> INSERT INTO Item (name) VALUES ("Panasonic DVD Player");
 ERROR 42X04: DB2 SQL error: SQLCODE: -1, SQLSTATE: 42X04, SQLERRMC:
Panasonic DV
 D Player�42X04

 ij> INSERT INTO Item (name) VALUES ('Panasonic DVD Player');
 1 row inserted/updated/deleted

 Jon











Reply via email to