[C con Clase] Problema con MySQL

Ivan Cachicatari ivancp en nspsac.com
Mie Mayo 28 02:12:53 CEST 2008


Hola,

En la consulta INSERT, los campos con valores autonumericos deben 
insertarse con el valor cero (0) para que se genere un nuevo valor.

Kyosuke Kasuga escribió:
> Hi!!!, Bueno ahora tengo otro problemita, pero ahora es con MySQL, 
> bueno tengo la siguiente tabla :
>  
> mysql_query(MisDatos, "CREATE TABLE Restorant.Fifo ("
>                         "codigoProducto VARCHAR(15), "
>                         "cantidad INT NOT NULL DEFAULT 0, "
>                         "pesolitro FLOAT(4) NOT NULL DEFAULT 1, "
>                         "fingreso DATE, "
>                         "fvencimiento DATE, "
>                         "pcosto INT NOT NULL DEFAULT 0, "
>                         "codigoFifo INT AUTO_INCREMENT, "
>                         "PRIMARY KEY (codigoFifo), "
>                         "FOREIGN KEY (codigoProducto) REFERENCES 
> Productos (codigo) "
>                         "ON DELETE CASCADE ON UPDATE CASCADE) "
>                         "ENGINE=InnoDB");
>  
> Y cuando trato de llenarla me manda el siguiente error:
>  
> "Column count doesn't match value count at row 1"
>  
> Esto me aparece cuando trato de agregar una nueva fila a la tabla, yo 
> creo que es porque definí a una columna cono AUTO_INCREMENT, pero no 
> se como hacerlo para que me acepte la nueva fila, el código que 
> intenta hacer esto es el siguiente :
>  
> bool BaseDatos::GuardaFifo(HWND hwnd, char *login, char *clave)
> {
>   int ancho;
>   char *Consulta;
>   char Plantilla2[250];
>   char cadena[] = "INSERT INTO Fifo VALUES (\'%s\', \'%d\', \'%f\', 
> \'%s\', \'%s\', \'%d\')";
>   if (!(MisDatos = mysql_init(0))){
>       return false;
>   }
>   if (!mysql_real_connect(MisDatos, Maquina, login, clave, Nombrebase, 
> MYSQL_PORT, NULL, 0)){
>       sprintf(Plantilla2, "Error : %s", mysql_error(MisDatos));
>       MessageBox (hwnd, Plantilla2, "Chanchichó", MB_ICONEXCLAMATION);
>       mysql_close(MisDatos);
>       return false;
>   }
>   /* Se formula consulta para ingresar datos*/
>   ancho = strlen(fifo.codigoProducto);
>   ancho = ancho + strlen(fifo.fingreso) + strlen(fifo.fvencimiento) + 19;
>   Consulta = new char[strlen(cadena)+ ancho];
>   sprintf(Consulta, cadena, fifo.codigoProducto, fifo.cantidad, 
> fifo.pesolitro,
>                             fifo.fingreso, fifo.fvencimiento, 
> fifo.pcosto);
>   mysql_query(MisDatos, Consulta);
>   sprintf(Plantilla2, "Error : %s", mysql_error(MisDatos));
>   MessageBox (hwnd, Plantilla2, "Chanchichó", MB_ICONEXCLAMATION);
>   delete[] Consulta;
>   mysql_close(MisDatos);
>   return true;
> }
>  
> La estructura Fifo es como sigue :
>  
> typedef struct {
>     char codigoProducto[16];
>     long int cantidad;
>     float pesolitro;
>     char fingreso[11];
>     char fvencimiento[11];
>     long int pcosto;
> }Fifo;
>  
> Cualkier idea o sugerencia del porque del error, lo agradeceria mucho, 
> de antemano muchas gracias.
>
>
> *Entre más numerosos somos, más cerca estamos de nuestra propia 
> extinción.
> *
> http://bisbirudolfo.blogspot.com/
>
> ------------------------------------------------------------------------
>
> Enviado desde Correo Yahoo! 
> <http://us.rd.yahoo.com/mailuk/taglines/isp/control/*http://us.rd.yahoo.com/evt=52431/*http://es.docs.yahoo.com/mail/overview/index.html>
> La bandeja de entrada más inteligente.
> ------------------------------------------------------------------------
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ

-- 
----------------------------------------------------
Ivan Cachicatari
Blog: http://www.latindevelopers.com/ivancp/
Movil: (+51-51) 9-5175-3803
----------------------------------------------------
<http://www.latindevelopers.com/>




Más información sobre la lista de distribución Cconclase