[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