SoloCodigo

Programación General => Java => Mensaje iniciado por: arqonexus en Martes 21 de Octubre de 2008, 17:31

Título: Eliminar un Registro
Publicado por: arqonexus en Martes 21 de Octubre de 2008, 17:31
Hola Amigos, el tengo que eliminar un registro, pero me sale este mensaje:

[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis en la cláusula FROM.

Los codigos son los Siguientes.

ServletSeminario.java
Código: Text
  1.  else if (accion.compareTo("DEL") == 0) {
  2.                 String id = request.getParameter("IdSeminario");
  3.                
  4.                 if ( id!=null ) {
  5.                     SeminarioBEAN seminario = new SeminarioBEAN();
  6.                     seminario.setIdSeminario(id);
  7.                     String mensaje = SeminarioDAO.elimina(seminario);
  8.                    
  9.                     if (mensaje == null) {
  10.                         request.getSession().setAttribute("mensaje", "Eliminacion exitosa!");
  11.                     } else {
  12.                         request.getSession().setAttribute("mensaje", mensaje);
  13.                     }
  14.                 }
  15.             // modificar departamento    
  16.             }
  17.  

SeminarioDAO.java No coloco todo el codigo solo la parte de eliminar,ya que si me registra. creo q aui esta el problema,pero nose donde.
Código: Text
  1.     public static String elimina(SeminarioBEAN semi)
  2.     {       
  3.         String consulta="Delete From Seminario Where IdSeminario=" + semi.getIdSeminario();
  4.  
  5.         return Sql.ejecuta(consulta);    // retorna null si todo OK
  6.     }
  7.  

EliminaSeminario.jsp

Código: Text
  1. <%
  2. String idSeminario = request.getParameter("IdSeminario");
  3.  
  4. if(idSeminario==null) {
  5.     String mensaje = "lleg nulo!";
  6.     response.sendRedirect("mensaje.jsp?mensaje=" + mensaje.replaceAll(" ","+"));
  7. } else {
  8.  
  9.     String seminario = Sql.getCampo("Select NomSeminario FROM Seminario Where IdSeminario=" + idSeminario);
  10. %>
  11.  

Gracias por la ayuda......
Título: Re: Eliminar un Registro
Publicado por: shadow_rev en Martes 21 de Octubre de 2008, 18:05
No estoy familiarizado con Access, pero creo que tienes que poner así:

Código: Java
  1. String consulta="Delete * From Seminario Where IdSeminario="" + semi.getIdSeminario() + """;
  2.  

La verdad, no estoy muy seguro, hace tiempo me salió un error similar, pero no recuerdo si fue así como puse la consulta.

:suerte:
Título: Re: Eliminar un Registro
Publicado por: arqonexus en Martes 21 de Octubre de 2008, 19:14
Gracias por responder, pero nah, sigue mal. alguien puede ayudarme.??
Título: Re: Eliminar un Registro
Publicado por: m0skit0 en Miércoles 22 de Octubre de 2008, 00:23
Creo que el problema lo tienes aquí:

Código: Java
  1.  
  2. "Delete From Seminario Where IdSeminario=" + semi.getIdSeminario();
  3.  
  4.  

Deberías poner el valor de IdSeminario entre comillas, es decir:

Código: Java
  1.  
  2. "Delete From Seminario Where IdSeminario="" + semi.getIdSeminario() + """;
  3.  
  4.  

No soy un experto en la sintaxis de Java, así que corrígeme si está mal. Saludos!

EDIT: Sí, por favor, borren el post, he puesto lo mismo...  :clown:
Título: Re: Eliminar un Registro
Publicado por: manix en Miércoles 22 de Octubre de 2008, 00:28
si es un numerico no va entre comillas

verifica si en realidad el id sea un numerico

saludos
Título: Re: Eliminar un Registro
Publicado por: m0skit0 en Miércoles 22 de Octubre de 2008, 00:36
Imprime por pantalla String consulta en el método eliminar() para comprobar si es la sentencia correcta (o comprueba su valor con el depurador).

¿Y la implementación dde Sql.ejecuta(consulta)?

Hasta luego!