Ver Mensaje Individual
  #5  
Antiguo 10-10-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Reputación: 28
jachguate Va por buen camino
Cita:
Empezado por Neftali
Si tienes concurrencia, no se si puedes tener problemas con los triggers; Otra opción es un Stored Procedure (que protegido debidamente con transacciones) te puede ofrecer un valor único.
La solución "natural" para la generación de valores únicos cuando hay concurrencia es el uso de generadores. En el evento OnNewRecord del dataset asociado, o bien en el evento BeforePost cuando el estado del dataset es dsInsert es donde suelo poner la generación del valor único.

Obviamente, este valor debe generarse desde delphi, en un trigger de la base de datos no resulta tan útil si la interacción se lleva a cabo solo desde el programa de delphi, pues este será incapaz de reconocer la fila que ha insertado.

Si habrá interacción desde otras fuentes, digamos isql, entonces como auxiliar pondría un trigger before insert que asigne un valor al nuevo registro solamente si el campo en cuestión viene nulo.

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