FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Generar un valor por default distinto para cada insert
Hola, desde ya gracias de antemano, estoy con firebird 1.5 y delphi 7
Estoy probando de generar un valor por default distinto para cada insert y no recibo nada, he probado en la BD Trigger Before Insert donde ya genero el ID pero el tema es que al darle + al Navigator no me aparece ningun valor por default en el DBEdit (ni tampoco el ID aunque si se guarda correctamente). Lo que necesito deberia trabajar similar a como se define el valor por default en la tabla con por ejemplo CAMPO1 FLOAT DEFAULT 5, que esto si funciona, al darle + al Navigator me coloca 5 Yo necesito generar un valor por ejemplo Select max(campo1) from tabla y mandarselo como default al campo1 que estoy insertando. Esto lo debo hacer en la base de datos, no me vale hacerlo en el Before Insert de la Tabla de Delphi Muchas Gracias |
#2
|
|||
|
|||
Procedimiento Almaceando
Usa un porcedimiento almacenado en ONNEWRECORD, veras las ventajas.
Lo que pasa es que los valores por default se colocan en el servidor cuando haces el post, no antes no después y para peor no los ves hasta que abres de nuevo la tabla. Ojo es un problema de transacciones, ahora no me acuerdo como se arregla, pero es mejor usar la solución que te di primero.
__________________
Saludos desde Sucre - Bolivia "Si te lo puedes imaginar lo puedes resolver" Pyriel |
#3
|
||||
|
||||
Cita:
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.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
|||
|
|||
Yo uso un tigger y me da un valor unico para cada registro.
Saludos |
#5
|
||||
|
||||
Cita:
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 |
#6
|
||||
|
||||
Cita:
El problema de los generadores es que si generas un número y luego deshaces el Insert o borras el registro, ese valor se pierde y al generar el siguiente tendrás un "hueco" en la numeración; Al proponer en el mensaje original un Max, pensé que quedaba desechada esa opción. Si eso no es importante, está claro, debes usar generadores, que para eso están.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#7
|
||||
|
||||
Cita:
Cita:
Creo que es importante tener en cuenta, al modelar un sistema, que es una mala idea usar los números de documento fiscales o contables como llave primaria. Creo que se gana mucha independencia si usas una llave totalmente artificial y luego asignas los números de documento según corresponda. Desde este punto de vista, tener un hueco en el correlativo no tiene ninguna importancia. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#8
|
||||
|
||||
Cita:
Cita:
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
¿como pasarle a un insert el valor del inputbox? | Nelly | Varios | 1 | 18-01-2006 23:36:39 |
como hacer que una columna del dbgrid contenga un valor de un TEdit en cada celda | Shidalis | OOP | 2 | 02-08-2005 12:05:35 |
Distinto valor de retorno en storedprocedure desde delfi y desde consola sql | manolop | Firebird e Interbase | 4 | 20-07-2005 17:24:52 |
DBGrid. Como puedo mandar cada celda a un form distinto? | gontxalo | OOP | 4 | 15-07-2005 19:41:25 |
Escribir 3 copias de una factura poniendo texto distinto en cada copia | pacope | Impresión | 5 | 26-01-2004 08:42:47 |
|