Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Error con una insert

Estas en el tema de Error con una insert en el foro de Bases de Datos General en Foros del Web. no se q ostias me pasa si hago la clase java con un main me funciona perfecta xo si lo ejecuto desde un jsp me ...
  #1 (permalink)  
Antiguo 10/06/2005, 05:00
 
Fecha de Ingreso: mayo-2005
Mensajes: 423
Antigüedad: 19 años
Puntos: 1
Error con una insert

no se q ostias me pasa si hago la clase java con un main me funciona perfecta xo si lo ejecuto desde un jsp me da error y el codigo de insercion es este
Código:
 public void insertarHistorial (Historial his)
            {
                
                 try{
                     com.mysql.jdbc.Driver  driver = (com.mysql.jdbc.Driver)Class.forName ("com.mysql.jdbc.Driver").newInstance ();
                     java.sql.Connection  connection = DriverManager.getConnection ("jdbc:mysql://localhost/Hospital", "user", "user");
                     java.sql.Statement stmt = connection.createStatement();
                     java.util.Date fech = new java.util.Date();
                     String codigo = Long.toString(fech.getTime());
                     codigo = codigo + Integer.toString((int)(Math.random() * 1000));
                     stmt.executeUpdate("insert into historial(codigo,cod_medico,cod_paciente,fecha,hora,concepto,descripcion) values('"+codigo+"','"+his.getMedico()+"','"+his.getPaciente()+"','"+his.getFecha()+"','"+his.getHora()+"','"+his.getConcepto()+"','"+his.getDescripcion()+"')");
                     stmt.close();
                     connection.close();
                      }catch(Exception e){
                                System.out.println("error al insertar en la BD de Historial al insertar historial"+e.getMessage());
            
                    }
                     
    
            }
y el error q me da ese ste

Column count doesn't match value count at row 1
__________________
Dios creo un equipo perfecto a los demas los lleno de extranjeros
  #2 (permalink)  
Antiguo 10/06/2005, 05:11
Avatar de haron  
Fecha de Ingreso: febrero-2004
Ubicación: Cádiz (refinitivo)
Mensajes: 632
Antigüedad: 20 años, 2 meses
Puntos: 3
haz lo siguiente:
Código:
String sql = "insert into historial(codigo,cod_medico,cod_paciente,fecha,hor  a,concepto,descripcion) values('"+codigo+"','"+his.getMedico()+"','"+his.getPaciente()+"','"+his.getFecha()+"','"+his.getHora()+"','"+his.getConcepto()+"','"+his.getDescripcion()+"')";
System.out.println(sql);
stmt.executeUpdate(sql);
antes de ejecutar la sentencia sql, la escribes (tambien puedes poner un punto de ruptura) y a si ves si la sentencia esta bien formada.

puedes copiar y pegar la cadena y ejecutarla aparte.

observacion:

no es buena idea pasar los parametros como lo estas haciendo ahora. da problemas.
usa PreparedStatement mejor.
__________________
Si ocurre algo importante, estamos afuera fumándonos unos cigarritos.
  #3 (permalink)  
Antiguo 10/06/2005, 05:46
 
Fecha de Ingreso: mayo-2005
Mensajes: 423
Antigüedad: 19 años
Puntos: 1
como es eso de PreparedStatement???

de toasd formas si en la clase HistorialBD creo un main con la llamada a esta funcion si me funciona xo no me funciona si la invoco desde el jsp
__________________
Dios creo un equipo perfecto a los demas los lleno de extranjeros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:34.