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 14-02-2008
Ezecool Ezecool is offline
Miembro
 
Registrado: jul 2003
Ubicación: Argentina
Posts: 60
Poder: 21
Ezecool Va por buen camino
Problema con DBExpress y Campo Autonumerico

Hola amigos, resulta que tengo un problema con un campo autonumerico (la clave primaria) en firebird 2.0, accedo via DBExpress con el driver de UIB, al hacer un alta a traves de un clientdataset y luego un ApplyUpdates me da un error acercad que el campo no puede ser nulo, cuando deberia generarlo el servidor, entiendo yo, alguien sabe cual podria ser el problema??, Desde ya muchas gracias
__________________
Se vemos!
Responder Con Cita
  #2  
Antiguo 14-02-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
Empezado por Ezecool Ver Mensaje
me da un error acercad que el campo no puede ser nulo, cuando deberia generarlo el servidor, entiendo yo, alguien sabe cual podria ser el problema??
El campo, en delphi, tiene la propiedad required a true.

Aún así tendrás el problema que el registro cambiará de clave primaria en la base de datos, con lo que si tu aplicación trata de localizarlo recién insertado, no tendrá la manera de hacerlo, y eso derivará en un nuevo error.

La solución para esto es asignar los valores, leyendolos desde el generador, justo antes de insertarlos, en tu aplicación delphi, y no esperar que se asignen en la base de datos.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 15-02-2008
Ezecool Ezecool is offline
Miembro
 
Registrado: jul 2003
Ubicación: Argentina
Posts: 60
Poder: 21
Ezecool Va por buen camino
Gracias jachguate, olvide mencionar que una de las primeros chequeos que hice fue justamente poner en false el required del campo, no obstante me gusta mas la idea de leer el valor del generador y enviar todo el registro completo, sin embargo me gustaria poder hacerlo sin que esto signifique que se incremente automaticamente la secuencia al leer, como ocurre, ya que podria darse una caso de que no se graben los datos y la secuencia se abria incrementado de todos modos, sabes alguna forma de leer el valor del generador sin incrementarlo? Muchas gracias
__________________
Se vemos!
Responder Con Cita
  #4  
Antiguo 15-02-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Podes obtener el valor del generador sin alterarlo llamando a gen_id con un cero (0) como segundo parámetro.

Claro, es algo que no recomiendo, puesto que te puede dar problemas de concurrencia.

Para evitar llamar al generador "por gusto", podrías intentar hacerlo justo en el momento anterior a que el registro se inserte realmente en la base de datos, pero como las cosas aún asi pueden fallar, realmente tu aplicación no debiera depender de que no hayan saltos en las llaves primarias.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 15-02-2008
Ezecool Ezecool is offline
Miembro
 
Registrado: jul 2003
Ubicación: Argentina
Posts: 60
Poder: 21
Ezecool Va por buen camino
Gracias

Tienez razon con eso de no depender de los saltos en la clave primaria, realmente para muchos casos no es importante, no lo habia tenido en cuenta, te agradezco tu colaboracion
__________________
Se vemos!
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
reindexar campo autonumerico nosferatu177 SQL 0 23-10-2007 00:47:14
Actualizar campo autonumerico Moparova SQL 20 25-05-2007 21:48:47
campo autonumerico pharaonhx MySQL 4 14-04-2005 21:13:50
No puedo con un campo autonumerico sercornejov Firebird e Interbase 1 19-01-2005 20:32:36
Asignación de Campo autonumérico Ulises Providers 2 15-07-2003 15:44:18


La franja horaria es GMT +2. Ahora son las 04:02:50.


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