Thread: Problem with PreparedStatement
I'm trying to do this: if (counter != -1) /* No ha habido ningún error */ { PreparedStatement pstmt=null; sql="insert into tar_historico values (?,?,?)"; razon="<br>Query: " + sql; try { pstmt = con.prepareStatement(sql); pstmt.setString(1,Integer.toString(counter)); pstmt.setString(2,"1"); pstmt.setTimestamp(3,new Timestamp(new java.util.Date().getTime())); pstmt.executeUpdate(sql); pstmt.close(); con.close(); } But I get this error message in the PostgreSQL log: query: insert into tar_historico values (?,?,?) ERROR: parser: parse error at or near "," What could be the problem? I've tried everything and I haven't found the solution yet. Please, help. Thanks in advance, Esteban Chiner ------------------------------------------------------------Esteban Chiner Sanz mailto (work): echiner@tissat.esTISSATAv.Aragon, 30, 5ª planta Phone: 96 393 9950Valencia (SPAIN)
"Esteban Chiner Sanz" wrote: >I'm trying to do this: > >if (counter != -1) /* No ha habido ningún error */ > {> PreparedStatement pstmt=null; > sql="insert into tar_historico values (?,?,?)"; > razon="<br>Query: " + sql; > try { > pstmt = con.prepareStatement(sql); > pstmt.setString(1,Integer.toString(counter)); > pstmt.setString(2,"1"); > pstmt.setTimestamp(3,new Timestamp(new >java.util.Date().getTime())); > pstmt.executeUpdate(sql);> pstmt.close(); > con.close(); > } > >ButI get this error message in the PostgreSQL log: > > query: insert into tar_historico values (?,?,?) > ERROR: parser:parse error at or near "," > >What could be the problem? I've tried everything and I haven't found the >solution yet.Please, help. >Thanks in advance, How about: sql="insert into tar_historico values ('?','?','?')"; -- Vote against SPAM: http://www.politik-digital.de/spam/ ======================================== Oliver Elphick Oliver.Elphick@lfix.co.uk Isle of Wight http://www.lfix.co.uk/oliver PGP key from public servers; key ID32B8FAA1 ======================================== "Delight thyself also in the LORD; and he shall give thee the desires of thine heart." Psalms 37:4
At 19:05 +0200 on 18/10/1999, Esteban Chiner Sanz wrote: > I'm trying to do this: > > if (counter != -1) /* No ha habido ningún error */ > { > PreparedStatement pstmt=null; > sql="insert into tar_historico values (?,?,?)"; > razon="<br>Query: " + sql; > try { > pstmt = con.prepareStatement(sql); > pstmt.setString(1,Integer.toString(counter)); > pstmt.setString(2,"1"); > pstmt.setTimestamp(3,new Timestamp(new > java.util.Date().getTime())); > pstmt.executeUpdate(sql); > pstmt.close(); > con.close(); > } > > But I get this error message in the PostgreSQL log: > > query: insert into tar_historico values (?,?,?) > ERROR: parser: parse error at or near "," What are the (Postgres) datatypes of the fields? The best would be to know what the final format of the query became. For this you have to run the postmaster with -d2 or something, to create a debug-level log. It will show you the statements as they were passed to the backend. My personal suspicion is that your first two fields are numeric fields, not string fields. Herouth -- Herouth Maoz, Internet developer. Open University of Israel - Telem project http://telem.openu.ac.il/~herutma
On Tue, 19 Oct 1999, Herouth Maoz wrote: > At 19:05 +0200 on 18/10/1999, Esteban Chiner Sanz wrote: > > > > I'm trying to do this: > > > > if (counter != -1) /* No ha habido ning�n error */ > > { > > PreparedStatement pstmt=null; > > sql="insert into tar_historico values (?,?,?)"; > > razon="<br>Query: " + sql; > > try { > > pstmt = con.prepareStatement(sql); > > pstmt.setString(1,Integer.toString(counter)); > > pstmt.setString(2,"1"); > > pstmt.setTimestamp(3,new Timestamp(new > > java.util.Date().getTime())); > > pstmt.executeUpdate(sql); > > pstmt.close(); > > con.close(); > > } > > > > But I get this error message in the PostgreSQL log: > > > > query: insert into tar_historico values (?,?,?) > > ERROR: parser: parse error at or near "," > > What are the (Postgres) datatypes of the fields? > > The best would be to know what the final format of the query became. For > this you have to run the postmaster with -d2 or something, to create a > debug-level log. It will show you the statements as they were passed to the > backend. > > My personal suspicion is that your first two fields are numeric fields, not > string fields. My suspicion aswell. Most people forget that setString() wraps the string in quotes when the query is sent to the backend. Peter -- Peter T Mount peter@retep.org.uk Main Homepage: http://www.retep.org.uk PostgreSQL JDBC Faq: http://www.retep.org.uk/postgresJava PDF Generator: http://www.retep.org.uk/pdf