Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-02-2011
juank1971 juank1971 is offline
Miembro
 
Registrado: feb 2008
Posts: 230
Poder: 17
juank1971 Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 28-02-2011
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
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.

Última edición por Al González fecha: 28-02-2011 a las 23:24:07.
Responder Con Cita
  #3  
Antiguo 01-03-2011
juank1971 juank1971 is offline
Miembro
 
Registrado: feb 2008
Posts: 230
Poder: 17
juank1971 Va por buen camino
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
auto increment einarcito Varios 19 23-05-2014 21:01:27
Auto trim en DBExpress + Firebird. j_fdez Firebird e Interbase 2 26-11-2008 12:56:23
auto increment einarcito SQL 2 14-10-2008 01:41:45
dbexpress y mysql chux Conexión con bases de datos 0 28-05-2006 19:40:35
Mysql y dbExpress inexperto Conexión con bases de datos 9 12-05-2006 15:26:48


La franja horaria es GMT +2. Ahora son las 07:43:43.


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
Copyright 1996-2007 Club Delphi