JDBC y sql server
Publicado por antonio (3 intervenciones) el 25/05/2007 12:15:40
Hola a todos tengo el siguiente problema con los RESULTSET y sql server, os explico:
Tengo el siguiente código:
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
String SQL = "select * from \"dbo\".\"TABLA_PRUEBA\"";
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery(SQL);
rs.first ();
rs.moveToInsertRow();
rs.updateString("CAMPO2", "Accounting");
rs.updateString("CAMPO3", "Executive General");
rs.insertRow();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CAMPO1 Y CAMPO2 son dos campos de tipo VARCHAR(50)
pues bien si hago lo que arriba os he indicado, SQL SERVER 2005 me devuelve lo siguiente
codigo de error: 16933
mensaje: El cursor no incluye la tabla que se va a modificar o ésta no se puede actualizar mediante el cursor.
pues bien si comento las dos lineas de los UPDATESTRINGS y dejo el codigo de la siguiente forma:
rs.moveToInsertRow();
// rs.updateString("CAMPO2", "Accounting");
// rs.updateString("CAMPO3", "Executive General");
rs.insertRow();
AHORA SI ME INSERTA UN NUEVO REGISTRO CON VALORES NULOS!!!!!!!!!
¿SABEIS COMO SOLUCIONAR EL PROBLEMA?
porque del mismo modo si me posiciono en un registro y hago un DeleteRow() me da el siguiente error:
Error nº = 3910; Mensaje = Contexto de transacción en uso por otra sesión
y con otra BD como por ejemplo ORACLE 9i no me pasa. graciassssss
Tengo el siguiente código:
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
String SQL = "select * from \"dbo\".\"TABLA_PRUEBA\"";
stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
rs = stmt.executeQuery(SQL);
rs.first ();
rs.moveToInsertRow();
rs.updateString("CAMPO2", "Accounting");
rs.updateString("CAMPO3", "Executive General");
rs.insertRow();
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CAMPO1 Y CAMPO2 son dos campos de tipo VARCHAR(50)
pues bien si hago lo que arriba os he indicado, SQL SERVER 2005 me devuelve lo siguiente
codigo de error: 16933
mensaje: El cursor no incluye la tabla que se va a modificar o ésta no se puede actualizar mediante el cursor.
pues bien si comento las dos lineas de los UPDATESTRINGS y dejo el codigo de la siguiente forma:
rs.moveToInsertRow();
// rs.updateString("CAMPO2", "Accounting");
// rs.updateString("CAMPO3", "Executive General");
rs.insertRow();
AHORA SI ME INSERTA UN NUEVO REGISTRO CON VALORES NULOS!!!!!!!!!
¿SABEIS COMO SOLUCIONAR EL PROBLEMA?
porque del mismo modo si me posiciono en un registro y hago un DeleteRow() me da el siguiente error:
Error nº = 3910; Mensaje = Contexto de transacción en uso por otra sesión
y con otra BD como por ejemplo ORACLE 9i no me pasa. graciassssss
Valora esta pregunta


0