Thread: Batch Update problem

Batch Update problem

From
"Hadraba Petr"
Date:
Hello all!

I'm running into strange issues with JDBC Driver v 8.2 build 507. I'm
using the JDBC 3 driver.

My code looks like:

I have a global PreparedStatement pStmt that handles the UPDATE statement.

In for-cycle I'm doing the following:
 - prepare values for the UPDATE
 - call pStmt.clearParameters();
 - call pStmt.setObject(paramOrderID, paramValue) for each value with
the right paramID and value
 - call pStmt.addbatch();

After the for-cycle I'm calling the pStmt.executeBatch(); and pStmt.close();

Please note, no Exceptions are thrown — the SQL code is correct and no
primary key nor foreign key valoations are occuring.

With the downloaded version, no UPDATES are processed. In the same
transaction (before commit) all UPDATES are written, but after the
dbConnection.commin(); all changes are lost.
With my-own-compiled version (JDBC 3g, against Java SE 5) is all
working properly.

My JDBC initialization code looks like:
 dbConnection.rollback();
 dbConnection.setAutoCommit(false);

I don't want to use the AutoCommit "feature".

What I'm doing wrong?

I'm able to post full source code and more info.

Please note, that all is working properly with my own JDBC v 3g
version. It's strange.


Thank you for your help.


Sincerely

PETR

P.S.: I investigated the source code and I didn't find any difference
in PreparedStatement in versions v 3 vs. v 3g, unfortunetly. All the
implementations are extending the PreparedStatement from JDBC v 2 :-(

Thank you!

Re: Batch Update problem

From
Kris Jurka
Date:

On Sun, 30 Dec 2007, Hadraba Petr wrote:

> I have a global PreparedStatement pStmt that handles the UPDATE
> statement.
>
> In for-cycle I'm doing the following:
>  - prepare values for the UPDATE
>  - call pStmt.clearParameters();
>  - call pStmt.setObject(paramOrderID, paramValue) for each value with
> the right paramID and value
>  - call pStmt.addbatch();
>
> After the for-cycle I'm calling the pStmt.executeBatch(); and
> pStmt.close();
>
> Please note, no Exceptions are thrown — the SQL code is correct and no
> primary key nor foreign key valoations are occuring.
>
> I'm able to post full source code and more info.
>

Please post a full test case.  I don't see any reason why Jdbc3 vs Jdbc3g
would be any different.

Kris Jurka

Re: Batch Update problem

From
"Hadraba Petr"
Date:
Hello and thank you.

I wrote a test case that is working correctly as expected. I'm not
able to reproduce the issue unfortunetly:-(

I also looked into the JDBC Driver source code and I didn't find
anything reasonable. The sources are the same for JDBC3 and JDBC3G.

So, I would like to close this issue and I'll investigate the problem more.

Thank you very much for your help!

Have a nice day,

PETR


On Jan 7, 2008 3:55 AM, Kris Jurka <books@ejurka.com> wrote:
>
>
> On Sun, 30 Dec 2007, Hadraba Petr wrote:
>
> > I have a global PreparedStatement pStmt that handles the UPDATE
> > statement.
> >
> > In for-cycle I'm doing the following:
> >  - prepare values for the UPDATE
> >  - call pStmt.clearParameters();
> >  - call pStmt.setObject(paramOrderID, paramValue) for each value with
> > the right paramID and value
> >  - call pStmt.addbatch();
> >
> > After the for-cycle I'm calling the pStmt.executeBatch(); and
> > pStmt.close();
> >
> > Please note, no Exceptions are thrown — the SQL code is correct and no
> > primary key nor foreign key valoations are occuring.
> >
> > I'm able to post full source code and more info.
> >
>
> Please post a full test case.  I don't see any reason why Jdbc3 vs Jdbc3g
> would be any different.
>
> Kris Jurka
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Have you searched our list archives?
>
>                http://archives.postgresql.org
>