Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   campo autonumerico (https://www.clubdelphi.com/foros/showthread.php?t=20403)

pharaonhx 14-04-2005 17:21:47

campo autonumerico
 
tengo el siguiente problema tengo dos tablas en mysql factura y detalle estas las lledo mediante una relacion maestro detalle y tengo la relacion mediante un campo NoFactura que es autonumerico de la tabla factura y el otro NoFactura en la tabla detalle el problema es que cuando agrego un nuevo registro el campo auto numerico se que da vacio y me da un error al grabar por que este campo n o puede estar vacio y no se que hacer.

roman 14-04-2005 17:42:10

agrega primero la factura usa select last_insert_id() from facturas esto da el id autoinc asignado lo usas para llenar el otro.

// Saludos

pharaonhx 14-04-2005 20:13:53

campo autonumerico
 
bueno roman si te explicas mejor creo que lo areglare no entiendo entiendo lo de insertar en factura primero pero lo otro no se donde usarlo te puedes explicarte mejor...con un ejemplito

roman 14-04-2005 20:37:36

Cita:

Empezado por pharaonhx

si te explicas mejor

No se entiende mucho ¿verdad? Como que escribi todo a renglón seguido, sin usar ningún signo de puntuación y sin detenerme mayormente a pensar si es entendible para los demás.

¿Te suena familar?

En fin, va una explicación más detallada.

Un registro en la tabla de detalles debe tener el valor del número de factura, pero éste no lo puedes saber sino hasta después de insertar la factura pues es el servidor quien lo asigna. Por ello es que conviene insertar la factura antes de sus detalles.

Para obtener el valor asignado al campo autonumérico luego de la inserción puedes utilizar la consulta:

Código SQL [-]
select last_insert_id()

que te devolverá un único registro con un sólo campo: el valor asignado y es el que usas para llenar la llave foránea en la tabla de detalles.

// Saludos

pharaonhx 14-04-2005 21:13:50

campo autonumerico
 
bueno gracias roman por aclarame la mente aunque me dio error como me lo indicaste pero me diste una idea para resolver el problema lo resolvi pirmero grabando y dandole un refresh y luego le asigne el valor como dijiste ...

ok gracias por tu tiempo


La franja horaria es GMT +2. Ahora son las 16:55:12.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi