Identificarte

Versión Completa : Sentencia sql en Java


Sponsored links
.




Vayeya_bttf
mayo 26, 2005, 09:44
Estoy intentando trabajar con java swing tengo una base de datos que conecto con puente odbc:jdbc bd en access me establecio perfecto la conexion hasta que inserte la sentancia sql que ademas no me inserta los datos introducidos alguien podria ayudarme :nervios:

cuaquero
mayo 27, 2005, 11:28
Pero te sale alguna excepción?
Te recomiendo usar sentencia.executeUpdate() para saber cuántas filas se modificaron.

kyo2004
mayo 27, 2005, 08:08
Estoy intentando trabajar con java swing tengo una base de datos que conecto con puente odbc:jdbc me establecio perfecto la conexion hasta que inserte la sentancia sql que ademas no me inserta los datos introducidos alguien podria darme un tip? :nervios:

Pues ya mire el codigo... el error en el codigo es en como formulaste la sentencia SQL... acuerdate que para insertar un campo a una BD en Java nesecitas encerrar los campos en comillas simples... recuerdo que con el proyecto de la agenda de Java me pasaba lo mismo y dure como seis horas con mi compañero para averiguar que ese era el error... :P :P

Revisa el codigo con el que te pase en la sentencia INSERT a ver si estoy en lo correcto...

And now... I'm Dissapear...

greenal
mayo 30, 2005, 11:32
Otra cosa para ke ponga cuidado, el trabajo con PreparedStatement tiene ke hacerlo sabiendo ke es lo ke modifica, le explico, ha veces uno cree ke los datos modificados fueron correctos y resulta ke uno se confunde con esas interrogaciones y con los campos ke esta cambiando, entonces despues de ke adicione consulte la base de datos para ke se cersiore de ke si le modifico o adiciono en el campo ke era.

Yo este semestre hice un proyecto parecido, si necesita la funcionde modificar o consultar, escribame a greenal@gmail.com y le envio las funciones, son muy faciles, sino ke uno se confunde a veces por los campos.

Vayeya_bttf
mayo 31, 2005, 11:10
Pero te sale alguna excepción?
Te recomiendo usar sentencia.executeUpdate() para saber cuántas filas se modificaron.
no me sale ninguna excepcion y si agrego la linea : int n = sentencia.executeUpdate(); no me manda error pero no me establece la conexion supongo que por que no me agrega registro por que?

Vayeya_bttf
mayo 31, 2005, 11:16
Si! primero intente la linea de la sig manera:
sentencia.execute("INSERT INTO INTER1(CVE_PROYECTO, ACTIVIDAD, COMP, NUM_PROYECTO, EQUIPO, POZO, NUM_POZO, TIPO_INTER, CLASE_INTER, FECHA1, FECHA2, TOTAL1, FECHA3, FECHA4, TOTAL2, TOTAL3, TERMINO, MES, AO, OBSERVACIONES) VALUES( "+cad1+", '"+cad1+"', '"+cad1+"', '"+NumProy+"', '"+Equipo+"', '"+cad1+"', '"+NumPozo+"', '"+LetPozo+"', '"+cad1+"', '"+cad1+"', '"+cad1+"', '"+cad1+"', '"+Tot1+"', '"+cad1+"', '"+cad1+"', '"+Tot2+"', '"+Tot3+"', '"+cad1+"', '"+Mes+"', '"+Ao+"', '"+Obs+"') "); y no me mandaba error simplemente no me inserta los datos...

HRC-unintended
mayo 31, 2005, 02:22
Probaste llamando al método commit() (http://java.sun.com/j2se/1.4.2/docs/api/java/sql/Connection.html#commit()) de java.sql.Connection explícitamente justo después de ejecutar la sentencia?

(Lo normal es que las nuevas conexiones tienen el modo auto-commit = true por defecto, pero uno nunca sabe :roll: )

Grissom.
mayo 31, 2005, 03:38
También asegure un .close() de cada recurso, en este orden:
1. ResultSet
2. PreparedStatement ó Statement
3. Connection

En algunos drivers cerrar Connection, cierra lo demás recursos creados a partir de él, sin embargo otros no (Ejemplo: Oracle) ... lo portable es cerrar todo uno mismo.

Vayeya_bttf
junio 1, 2005, 10:22
Ya le agregue el metodo commit() conexion.close() sentancia.close(); y nadaaaa sigue sin agregarme los registros ya revise el codigo y de verdad no encuentro el error help meee LANeross! :muerto:

HRC-unintended
junio 1, 2005, 10:32
Y seguro que no sale excepcion? Poné a imprimir el stackTrace en las excepciones, con exception.printStackTrace(); (puede ser que esté saliendo exception y vos la estés ignorando).

Otra prueba: Haz un System.out.println de la sentencia SQL que estás generando. Copiála y ejecutála manualmente en la base de datos y observá qué sucede (si sí funciona, estamos en graves problemas, si no funciona, pues ahí entonces podrás saber por qué no funcionaba!).

greenal
junio 1, 2005, 04:25
Intenta asignarle a esa sentencia para ke se ejecute una variable String, depronto te esta generando algun conflicto con la base de datos.

Grissom.
junio 1, 2005, 06:14
También revise que le este apuntando a la misma base de datos, y si esta usando un cliente gráfico para mirar los cambios reflesque porque puede que ya este y no lo esta cargando.

Vayeya_bttf
junio 6, 2005, 10:15
Ya quedo mi codigo gracias por todas la aportaciones de LANeros pero especialmente a HRC-unintended que fue muy acertado en todas sus aportaciones y explicaciones!!!!! si pudiera darte mas puntikos te los daba :P

Vayeya_bttf
junio 9, 2005, 12:07
Ahora tengo problema con esta sentencia me arroja la excepcion que dice: java.lang.NullPointerExcepcion
try{
conexion = DriverManager.getConnection( "jdbc:odbc:BD1","","" );
String query = "SELECT ACTIVIDAD FROM INTER1";
resultado = sentencia.executeQuery(query);
int i = 0;
while(resultado.next()){
CveProyecto[i] = resultado.getString("ACTIVIDAD");
System.out.println(CveProyecto[i]);
i++;
}
System.out.println("Conexion establecida");
}
alguien podria mandarme una buena pag o un tutorial que pueda asesorarme no estoy muy familiarizada con sql y con laq info que tengo la verdad no entiendo nada :(

xsaza
junio 9, 2005, 11:21
El problema que tenes es que el query esta retornando un nulo, y al llamar result.next() no tiene valor proximo.
Intenta esto:

//----------------------------------------
resultado = executeQuery(sql);
if(resultado.next())
System.out.println("Si hay datos en el query");
else
System.out.println("ES NULO");

//----------------------------------------------------

con este pedacito se dara cuenta si el resultado es nulo, y no arrojara la excepcion;

Vayeya_bttf
junio 10, 2005, 08:41
No ya lo intente y no me funciona de todas maneras me manda la exepcion es en la sentncia sql :muerto:

xsaza
junio 11, 2005, 11:34
Entonces el problema puede ser por el driver de la bd, adjunto te mando un archivo para verificar si la conexion y el driver estan bien. Este es para postgres.

Vayeya_bttf
junio 13, 2005, 10:20
Entonces el problema puede ser por el driver de la bd, adjunto te mando un archivo para verificar si la conexion y el driver estan bien. Este es para postgres.
Mi conexion y driver me trabajan perfecto mi problema era que inicializaba sentancia como null entonces al ocupar el resultSet no me apuntaba a ningun lado... pero pues lo detecte y ya me corre mi sentancia ResultSet pero muchisimas gracias de todas maneras.... :P

xsaza
junio 14, 2005, 10:13
que pena no haber podido dar con el problema, pero bueno, estamos para ayudarnos.
Mucha suerte.

Vayeya_bttf
junio 15, 2005, 12:09
resulta que tengo la sig sentencia:

ResultSet resultado = sentencia.executeQuery("SELECT DISTINCT [CVE PROYECTO] FROM INTER1");
la uso para llenar una matriz que me llena un jcomboBox pero resulta que tengo 10 combos mas que quiero llenar con otras columnas de esa misma tabla pero si agrego a las sentancia los demas campos los resultados no son los que quiero me arroja resultados iguales que debo hacer? hacer 10 consultas mas? seria hacer 10 ciclos mas? o como? y otra vez si alguien podria mandarme una buena informacion sobre sentencias sql se lo agradeceria ya que estoy bien out! :muerto: gracias!