Java - problema java mysql

   
Vista:

problema java mysql

Publicado por carlos adrian soto (3 intervenciones) el 08/02/2012 23:22:51
Hola, de antemano mil graicas por su apoyo.

el problema que tengo es que al ejecutar sentencias sql desde java separadas por (; punto y coma ) me lanza una excepción de sintaxis, pero copio las mismas sentencias y las ejecuto directamente en el cliente querryBrouser de mysql y se ejcutan sin ningun problema.

ahora si ejecuto las consultas una a una no hay problema. por ejemplo:
si creo una tabla con el comando execute y luego nuevamente otra con execute desde java todo funciona bien pero si intento armar una cadena con ambas sentencias y ejecutarlas con un solo update, ahi sale el problema.

he echo varias pruebas y he llegado a la conclusion de que el problema lo genera el (;) como sucede en el siguiente trigger por ejemplo que lanza la siguiente exepcion.


String SQL=" ";
SQL="DELIMITER $$ "+
+ "DROP TRIGGER if exists `xData`"+
+"CREATE TRIGGER `a1`.`xData` "+
"+AFTER UPDATE ON `a1`.`tinfo`" +
+ "FOR EACH ROW BEGIN " +
+ "IF (OLD.Name <> NEW.Name) THEN " +
+ "INSERT INTO tlog (remark) VALUES ('EditData'); " +
+ "END IF; " +
+ "END;" +
+ "$$" +
+ "DELIMITER;";
stmt=con.createStatement();
rs=stmt.execute(SQL);

ecepxion
MySQL server version for the right syntax to use near 'DELIMITER $$ CREATE TRIGGER `a1`.`xData` AFTER UPDATE ON `a1`.`tinfo`IF (' at line 1 "

pero al ejecutarlo directamente en mysql se crea sin ningun problema. y lo que sucede es que lo debo crear desde java.
nuevamnte mil gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

problema java mysql resuelto

Publicado por carlos adrian soto (3 intervenciones) el 10/02/2012 16:28:02
hola, dure dos semanas leyendo y al fin pude resolver el problema gracias a esta pagina
http://zetcode.com/databases/mysqljavatutorial/

lo que se debe hacer es usar los allowMultiQueries=true en la cadena donde se carga el driver de conexion para permitir ejecutar multiples sentencias sql.
espero a alguien le sirva;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar