Man guys, this is going down a really ugly path. 

What happens when you get a new driver, and the message changes from
"Invalid key" to "Duplicate key"? Your app is broken. This path to me
seems to be fraught with peril. ;-)

I still say that the stored procedure is the safest, simplest,
fastest, and most controllable route to take.

Larry


On Wed, 23 Feb 2005 14:48:24 -0600, Brent Worden <[EMAIL PROTECTED]> wrote:
> You might also try to examine the errorCode property of the 
> NestedSQLException or the wrapped SQLexception.  It should hold a vendor 
> specific code that identifies the type of database error.
> 
> ----- Original Message -----
> From: "Brice Ruth" <[EMAIL PROTECTED]>
> To: ibatis-user-java@incubator.apache.org, "Tim Christopher" <[EMAIL 
> PROTECTED]>
> Subject: Re: Duplicate Key in Db
> Date: Wed, 23 Feb 2005 14:32:25 -0600
> 
> >
> > I think you need to catch a DaoException, and check its cause. If its
> > cause is a NestedSqlException, you'll need to interrogate that to
> > determine what the "real" cause was. In your case, it appears a
> > generic exception is thrown by the JDBC driver
> > (com.borland.datastore.driver.SqlState), with a "Runtime Error" -
> > you'll probably need to parse for "Duplicate key" to determine if
> > that's what's being thrown.
> >
> > I've had to do something similar ... it certainly isn't elegant, at
> > least not the way I did it! Maybe someone else has a better
> > suggestion.
> >
> >
> > On Wed, 23 Feb 2005 20:23:23 +0000, Tim Christopher
> > <[EMAIL PROTECTED]> wrote:
> > > >> You can do that now.  Maybe I'm missing something?
> > > >> The Ibatis insert() statement throws a SQLException.. ..
> > >
> > > Below is the first part of stack dump that is triggers by the failed
> > > insertion, so should I be catching a DaoException or
> > > NestedSQLException?...  Or is there anything else I can do?
> > >
> > > >>>>>>
> > > StandardWrapperValve[action]: Servlet.service() for servlet action
> > > threw exception
> > > com.ibatis.dao.client.DaoException: Failed to update - id
> > > [insertModule] - parameterObject [EMAIL PROTECTED]  Cause:
> > > com.ibatis.common.jdbc.exception.NestedSQLException:
> > > --- The error occurred in com/socs/persistence/sqlmapdao/sql/Module.xml.
> > > --- The error occurred while applying a parameter map.
> > > --- Check the insertModule-InlineParameterMap.
> > > --- Check the statement (update failed).
> > > --- Cause: com.borland.datastore.driver.SqlState: Runtime Error: [line
> > > 1, col 6] Duplicate key value for $UNIQUE$1 sort order in "MODULE".
> > > Caused by: com.borland.datastore.driver.SqlState: Runtime Error: [line
> > > 1, col 6] Duplicate key value for $UNIQUE$1 sort order in "MODULE".
> > > <<<<<<
> > >
> > > Tim Christopher
> > >
> 
>

Reply via email to