On Mar 22, 2007, at 1:40 AM, Abdullah Kauchali wrote:
Avoid using @@Identity and instead use Scope_Identity().
Here is a blogg that summarises the point:
http://cf-bill.blogspot.com/2005/08/identity-scopeidentity-
identcurrent.html
Has links to MSDN for details.
I've got my code working now, but only with @@IDENTITY, not with
SCOPE_IDENTITY().
If I have this inside a table element in my AbatorConfig.xml ...
<generatedKey column="id" sqlStatement="SqlServer" identity="true"/>
then it generates this in my mapping file ...
<insert id="abatorgenerated_insert"
parameterClass="com.savealot.xademo.model.Address" >
insert into GWT_Test..address (street, city, state, zip)
values (#street:VARCHAR#, #city:VARCHAR#, #state:VARCHAR#,
#zip:INTEGER#)
<selectKey resultClass="java.lang.Integer" keyProperty="id" >
SELECT SCOPE_IDENTITY()
</selectKey>
</insert>
and when I run I get ...
java.lang.NullPointerException
com.savealot.client.SpringDAOClient.addAddress(SpringDAOClient.java:56)
com.savealot.client.SpringDAOClient.loadDB(SpringDAOClient.java:84)
However, if change the generateKey element to this ...
<generatedKey column="id" sqlStatement="SELECT @@IDENTITY AS ID"
identity="true"/>
then it generates this in my mapping file ...
<insert id="abatorgenerated_insert"
parameterClass="com.savealot.xademo.model.Address" >
insert into GWT_Test..address (street, city, state, zip)
values (#street:VARCHAR#, #city:VARCHAR#, #state:VARCHAR#,
#zip:INTEGER#)
<selectKey resultClass="java.lang.Integer" keyProperty="id" >
SELECT @@IDENTITY AS ID
</selectKey>
</insert>
where the only difference is the SELECT statement, and everything
works fine.
Any idea why I can't get SCOPE_IDENTITY() to work? Perhaps something
I'm doing wrong defining the table?
-----Original Message-----
From: Niels Beekman [mailto:[EMAIL PROTECTED]
Sent: Wednesday, March 21, 2007 10:19 PM
To: [email protected]
Subject: FW: SQL Server JDBC drivers
And for the archives...
-----Original Message-----
From: Niels Beekman
Sent: woensdag 21 maart 2007 20:33
To: 'Mark Volkmann'
Subject: RE: SQL Server JDBC drivers
Sure:
<insert id="Example_insert" parameterClass="Example">
INSERT INTO example (example_column)
VALUES (#exampleColumn#)
<selectKey keyProperty="exampleId" resultClass="int">
SELECT @@IDENTITY AS ID
</selectKey>
</insert>
iBATIS will then populate the property "exampleId" with the value of
the
auto-incremented column.
HTH,
Niels
-----Original Message-----
From: Mark Volkmann [mailto:[EMAIL PROTECTED]
Sent: woensdag 21 maart 2007 20:28
To: Niels Beekman; Graeme J Sweeney; Rose, Greg
Cc: Dan Berghoff
Subject: Re: SQL Server JDBC drivers
Thanks to the three of you for replying!
We're having trouble getting iBATIS to work with tables that have an
integer primary key that is auto-incremented. If you have done that,
can you send me the relevant snippet of XML from one of your {name}
_SqlMap.xml files?
Thanks!
On Mar 21, 2007, at 11:36 AM, Niels Beekman wrote:
Hi,
We use jTDS (http://jtds.sf.net) for several years now, it has
excellent
performance and any bugs (which are very rare) are dealt with
promptly.
Niels
-----Original Message-----
From: Mark Volkmann [mailto:[EMAIL PROTECTED]
Sent: woensdag 21 maart 2007 17:28
To: [email protected]
Subject: SQL Server JDBC drivers
If you have successfully used iBATIS with SQL Server, can you
tell me
what JDBC driver(s) have worked for you?