Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   auto increment en Mysql con dbExpress (https://www.clubdelphi.com/foros/showthread.php?t=72593)

juank1971 28-02-2011 21:46:27

auto increment en Mysql con dbExpress
 
Saludos:

Me pueden decir que me esta pasando tengo una coneccion con TSqlConnection a MySql con dbExpress ,
un TSQLTable conectado a esa conexion ,
un DataSetProvider conectado al TSQLTable ,
un ClientDataset conectado al DataSetProvider,
y un grid con un datasource , cuando hago un append de un nuevo registro no me lo hace con el ID_cliente de la tabla que esta en MySqly es autoincrement, no me pone en el grid el nuevo id y cuando doy actualizar me dice que no puede estar vacio ese id como es logico

gracias

salud y pesetas juank

Al González 28-02-2011 23:19:40

Eso es porque quien se encarga de asignar el nuevo valor es el motor de base de datos. Así que hasta que éste recibe de parte del programa la instrucción "Insert Into", es decir, hasta que haces el ApplyUpdates, no se asignará el valor al campo.

No has puesto una copia exacta del mensaje de error que te aparece al intentar guardar el registro, pero es casi seguro que la causa esté en la propiedad Required del objeto campo. Hay que ponerla en False (tanto en el TSQLTable / TSQLQuery / TSQLDataSet como en el conjunto de datos cliente) para que te deje guardar el registro en memoria y luego enviarlo al servidor sin haberle dado valor a ese campo.

Pero si lo que necesitas es que el nuevo valor esté disponible visualmente desde que se empieza la captura del nuevo registro, temo que tendrás que cambiar el tipo del campo en la base de datos por un simple Integer. EDITO: Bueno, no necesariamente; dependerá del enfoque que manejes respecto a ese campo autoincrementado y si hay más usuarios que puedan agregar registros a la tabla simultáneamente.

Saludos.

Al González. :)

juank1971 01-03-2011 15:49:50

Resuelto
 
Ok Al González :
Resuelto el problema con eso mismo que me dices
Required de la tabla. pense que DbExpress tenia alguna incompatibilidad con MySql pero era eso ya esta resuelto, y si hay varios usuarios pero no importa el id autoincrementado. no tiene que verse, es solo control mio.

Gracias salud y pesetas para ti y los tuyos

Juank


La franja horaria es GMT +2. Ahora son las 22:28:48.

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