• Jueves 17 de Octubre de 2019, 02:29

Autor Tema:  Error SQL Server insert  (Leído 6798 veces)

bertamax

  • Nuevo Miembro
  • *
  • Mensajes: 22
    • Ver Perfil
Error SQL Server insert
« en: Domingo 18 de Julio de 2010, 18:01 »
0
Estoy ejecutando mi aplicación y me lanza la siguiente excepción:

java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]Error de inserción: el nombre de columna o los valores especificados no corresponden a la definición de la tabla.
Traza error [Microsoft][ODBC SQL Server Driver][SQL Server]Error de inserción: el nombre de columna o los valores especificados no corresponden a la definición de la tabla.

¿A qué puede ser debido?

Gracias y saludos

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1918
  • Nacionalidad: mx
    • Ver Perfil
    • http://www.ingenieria-soporte.com
Re: Error SQL Server insert
« Respuesta #1 en: Domingo 18 de Julio de 2010, 21:27 »
0
El error es en la consulta estas intentando insertar un numero diferente de valores

Ejemplo:

INSERT INTO TABLA (CAMPO1,CAMPO2,CAMPO3) VALUES (1,2) --Falta el valor del campo 3
INSERT INTO TABLA (CAMPO1,CAMPO2) VALUES (1,2,3) --Falta el nombre del campo 3 dentro de la lista de campos
INSERT INTO TABLA (CAMPO1,CAMPO2,CAMPO3) VALUES (1,2,3) --Misma cantidad de campos y valores

* campo = columna

revisa tu consulta.

Saludos



" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

bertamax

  • Nuevo Miembro
  • *
  • Mensajes: 22
    • Ver Perfil
Re: Error SQL Server insert
« Respuesta #2 en: Domingo 18 de Julio de 2010, 22:29 »
0
Pues sí que coinciden porque mi código es el siguiente

<%@page import="java.io.*,java.sql.*"%>
<%@page session="true" errorPage="Error.jsp"%>
<jsp:useBean id="miBean" scope="session" class="beanBalnearios.altbajamodver"/>


<html>
<head>
    <script LANGUAGE=JavaScript type="text/javascript">

function checkFields() {
missinginfo = "";
if (document.form.Nombre_usuario.value == "") {
missinginfo += "n     -  Nombre_usuario";
}
if (document.form.Apellidos_usuario.value == "") {
missinginfo += "n     - Apellidos_usuario";
}
if (document.form.Codigo_usuario.value == "") {
missinginfo += "n     - Codigo_usuario";
}
if (document.form.direccion.value == "") {
missinginfo += "n     - dirección";
}
if (document.form.Poblacion.value == "") {
missinginfo += "n     - Poblacion";
}
if (document.form.Provincia.value == "") {
missinginfo += "n     -  Provincia";
}
if (document.form.CodigoPostal.value == "") {
missinginfo += "n     - CodigoPostal";
}
if (document.form.Telefono.value == "") {
missinginfo += "n     -  Telefono";
}
if ((document.form.email_usuario.value == "") ||
(document.form.email_usuario.value.indexOf('@') == -1) ||
(document.form.email_usuario.value.indexOf('.') == -1)) {
missinginfo += "n     -  email_usuario";
}
if (document.form.Dni.value == "") {
missinginfo += "n     -  Dni";
}
if (document.form.Tarjeta.value == "") {
missinginfo += "n     -  Tarjeta";
}
if (document.form.CCV.value == "") {
missinginfo += "n     - CCV";
}


if (missinginfo != "") {
missinginfo ="_______________________________n" +
"Debe rellenar algunos campos yn" +
"escribir una dirección e-mail válida.n" +
"Revise los siguientes campos:n" +
missinginfo + "n_______________________________" +
"nPor favor inténtelo de nuevo. Gracias" +
"n";

alert(missinginfo);
return false;
}
else return true;
}


</script>
<title></title>
</head>

<body bgcolor="#669933"><center>
        <%@include file="cabeceras.html"%></center>
       
       
       
       
         <form name=form method=POST action=compras.jsp onSubmit="return checkFields()">  
        <table border=0>
            <%--     <center>   --%>
       
                <tr>
                    <td><b>Nombre:</b></td>
                    <td><input type=text name="Nombre_usuario"size="20" ></td>
                </tr>
               
                <tr>
                    <td><b>Apellidos:</b></td>
                    <td><input type=text name="Apellidos_usuario"size="20" ></td>
                </tr>
                 <tr>
                     <td><b>C&oacute;digo cliente:</b></td>
                  <td> <input name="Codigo_usuario" type=text id="Codigo_usuario"size="20" >
                    </td>
                  </tr>
                <tr>
                    <td><b>Dirección:</b></td>
                    <td><input type=text name="direccion"size="20" ></td>
                </tr>
               
               
                <tr>
                    <td><b>Población:</b></td>
                    <td><input type=text name="Poblacion" size="20"></td>
                </tr>
               
                <tr>
                    <td><b>Provincia:</b></td>
                    <td><input type=text name="Provincia" size="20"></td>
                   
                </tr>
         
       
     
                <tr>
                <td><b>C&oacute;digo Postal:</b></td>
              <td><input type=text name="CodigoPostal"size="20" ></td>
                <tr>
                <td><b>N&uacute;mero Tel&eacute;fono:</b></td>
                  <td><input type=text name="Telefono" size="20"></td>
                </tr>
                <tr>
                    <td><b>E-Mail:</b></td>
                    <td><input type=text name="email_usuario"size="20" ></td>
                   
                </tr>
                <tr>
                <td><b>Dni:</b></td>
                   <td><input type=text name="Dni" size="20" ></td>
                </tr>
         
       
       
       
         
                <tr>
                <td><b>Nº Tarjeta:</b></td>
                  <td><input type=text name="Tarjeta" size="20"></td>
                </tr>
                <tr>
                    <td><b>CCV:</b></td>
                    <td><input type=text name="CCV" size="20"></td>
                </tr>
                <tr>
                    <td><br>
                        <br><center>
                            <input name="button" type=button class=botones onClick=print() value=IMPRIMIR>
                           
                            <input type=submit class=botones value=ENVIAR>
                        </center>
                    </td>
                  </tr>
           
        </table>
         </form>
         <% String q="";
             
              if(request.getParameter("Codigo_usuario")!=null && request.getParameter("Codigo_usuario")!=""){
               String a=request.getParameter("Nombre_usuario");
               String b=request.getParameter("Apellidos_usuario");
               String c=request.getParameter("Codigo_usuario");
               String d=request.getParameter("direccion");
               String e=request.getParameter("Poblacion");
               String f=request.getParameter("Provincia");
               String g=request.getParameter("CodigoPostal");
               String h=request.getParameter("Telefono");
               String i=request.getParameter("email_usuario");
               String j=request.getParameter("Dni");
               String k=request.getParameter("Tarjeta");
               String l=request.getParameter("CCV");
               
               
               
                 
               
                 q+="insert into compras values('"+a+"','"+b+"','"+c+"','"+d+"','"+e+"','"+f+"','"+g+"','"+h+"','"+i+"','"+j+"','"+k+"','"+l+"')";
               
                 if(miBean.Update(q)>0){%>
                 <br><h1 align=center>
                     <jsp:forward page="confirmacion.jsp"/></h1>
                 <%}else{%>
                 <br><h1 align=center>NO SE HA REALIZADO EL ALTA CORRECTA</h1>
               
                <% }
               
              }%>
                 
       
       
       
   
</body>
</html>

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1918
  • Nacionalidad: mx
    • Ver Perfil
    • http://www.ingenieria-soporte.com
Re: Error SQL Server insert
« Respuesta #3 en: Martes 20 de Julio de 2010, 02:56 »
0
Eso no podemos saberlo, porque no conocemos la estructura de tu tabla.

muestra la estructura de tu tabla

Saludos



" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

bertamax

  • Nuevo Miembro
  • *
  • Mensajes: 22
    • Ver Perfil
Re: Error SQL Server insert
« Respuesta #4 en: Martes 20 de Julio de 2010, 18:28 »
0
Codigo_usuario   varchar(50)   Checked
Codigo_compra   varchar(50)   Unchecked
Nombre_usuario   varchar(50)   Checked
Apellidos_usuario   varchar(50)   Checked
Telefono   varchar(50)   Checked
email_usuario   varchar(50)   Checked
direccion   varchar(MAX)   Checked
Tarjeta   varchar(50)   Checked
CCV   varchar(50)   Checked
Poblacion   varchar(50)   Checked
Provincia   varchar(50)   Checked
CodigoPostal   varchar(50)   Checked
Dni   varchar(50)   Checked

Gracias

arielb

  • Moderador
  • ******
  • Mensajes: 771
  • Nacionalidad: pa
    • Ver Perfil
    • http://coder-pa.blogspot.com
Re: Error SQL Server insert
« Respuesta #5 en: Jueves 29 de Julio de 2010, 16:23 »
0
Según la estructura que muestras conté 13 campos
Código: SQL
  1. Codigo_usuario VARCHAR(50) Checked
  2. Codigo_compra VARCHAR(50) Unchecked
  3. Nombre_usuario VARCHAR(50) Checked
  4. Apellidos_usuario VARCHAR(50) Checked
  5. Telefono VARCHAR(50) Checked
  6. email_usuario VARCHAR(50) Checked
  7. direccion VARCHAR(MAX) Checked
  8. Tarjeta VARCHAR(50) Checked
  9. CCV VARCHAR(50) Checked
  10. Poblacion VARCHAR(50) Checked
  11. Provincia VARCHAR(50) Checked
  12. CodigoPostal VARCHAR(50) Checked
  13. Dni VARCHAR(50) Checked
  14.  

y según la cadena que tienes solo conté 12, por lo que veo que no coiciden.
Código: SQL
  1.  
  2. q+="insert into compras values('"+a+"','"+b+"','"+c+"','"+d+"','"+e+"','"+f+"','"+g+"','"+h+"','"+i+"','"+j+"','"+k+"','"+l+"')";
  3.  

Si deseas hacer un insert con todos los campos de la tabla, lo puedes hacer con la sintaxis como la estás haciendo. Pero si los valores que quieres guardar son menos que la cantidad de campos que tiene la tabla, debes especificar los campos a utilizar que corresponda al valor (como lo explicó el amigo f_tanori).

Código: SQL
  1. INSERT INTO tabla(campos) VALUES(valores);
  2.  
"Porque de tal manera amó Dios al mundo que dio a su hijo unigénito para que todo aquél que en él crea no se pierda mas tenga vida eterna"
Juan 3:16

http://coder-pa.blogspot.com

bertamax

  • Nuevo Miembro
  • *
  • Mensajes: 22
    • Ver Perfil
Re: Error SQL Server insert
« Respuesta #6 en: Sábado 31 de Julio de 2010, 19:35 »
0
Gracias.

He hecho esta modificación y me sigue dando error.

q+="insert into compras(Nombre_usuario, Apellidos_usuario, Codigo_usuario, direccion, Poblacion, Provincia, CodigoPostal, email_usuario, Dni, Tarjeta, CCV) values('"+a+"','"+b+"','"+c+"','"+d+"','"+e+"','"+f+"','"+g+"','"+h+"','"+i+"','"+j+"','"+k+"','"+l+"')";

arielb

  • Moderador
  • ******
  • Mensajes: 771
  • Nacionalidad: pa
    • Ver Perfil
    • http://coder-pa.blogspot.com
Re: Error SQL Server insert
« Respuesta #7 en: Domingo 1 de Agosto de 2010, 03:58 »
0
usa la opción debug para que veas el resultado final de la variable cuando se arma, y si no sabes usar el debug puedes imprimir la variable con
Código: Java
  1. System.out.println(q)
  2.  
y el resultado lo pones acá. para ver como se terminando de construir la variable.

Por otro lado al momento de asignar a la variable q no es necesario que uses el signo más, ya que no estás acumulando.
"Porque de tal manera amó Dios al mundo que dio a su hijo unigénito para que todo aquél que en él crea no se pierda mas tenga vida eterna"
Juan 3:16

http://coder-pa.blogspot.com

arielb

  • Moderador
  • ******
  • Mensajes: 771
  • Nacionalidad: pa
    • Ver Perfil
    • http://coder-pa.blogspot.com
Re: Error SQL Server insert
« Respuesta #8 en: Domingo 1 de Agosto de 2010, 04:16 »
0
en la parte de los campos te faltó teléfono
Código: SQL
  1.  
  2. INSERT INTO compras(Nombre_usuario, Apellidos_usuario, Codigo_usuario, direccion, Poblacion, Provincia, CodigoPostal, email_usuario, Dni, Tarjeta, CCV) VALUES('Nombre_usuario','Apellidos_usuario','Codigo_usuario','direccion','Poblacion','Provincia','CodigoPostal','Telefono','email_usuario','Dni','Tarjeta','CCV')
  3.  
"Porque de tal manera amó Dios al mundo que dio a su hijo unigénito para que todo aquél que en él crea no se pierda mas tenga vida eterna"
Juan 3:16

http://coder-pa.blogspot.com

bertamax

  • Nuevo Miembro
  • *
  • Mensajes: 22
    • Ver Perfil
Re: Error SQL Server insert
« Respuesta #9 en: Lunes 2 de Agosto de 2010, 20:28 »
0
Muchas gracias

He echo la siguiente modificación:

q="insert into compras(Nombre_usuario, Apellidos_usuario, Codigo_usuario, direccion, Poblacion, Provincia, CodigoPostal, Telefono, email_usuario, Dni, Tarjeta, CCV) values('"+a+"','"+b+"','"+c+"','"+d+"','"+e+"','"+f+"','"+g+"','"+h+"','"+i+"','"+j+"','"+k+"','"+l+"')";
System.out.println(q);

El resultado es el siguiente:

Note: C:Documents and SettingsmariaMis documentosredesbuildgeneratedsrcorgapachejspcompras_jsp.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.