FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Problemas inserción de registros en IBDataset maestro-detalle y Foreign Key
Señores muy buenos dias.
Algo muy raro está pasando o simplemente me ha ganado el tema. He buscado por todo lado aparte de nuestro amado foro pero nada de nada. Paso a detallar el problema: Tengo una base de datos Firebird 2.5 con las siguientes tablas:
Dentro del formulario tengo dos IBDataSet con sus instrucciones SQL y en relación maestro-detalle funcionando bien. Lo de "funcionando bien" lo digo porque en las pruebas que he realizado al momento de ingresar registros tanto en la tabla maestra (DEPART) como en la tabla detalle (MUNIC) lo hace bien, pues al consultar la base de datos luego de la operación se refleja la información. Pero vaya sorpresa que cuando dentro de la base de datos quise colocar una validación de integridad referencial es decir una llave foránea para la tabla MUNIC sobre el campo COD_DEPARTAMENTO:
El proceso de inserción de registros sólo me graba la información en la tabla Maestra y NO graba nada en la tabla Detalle. A continuación muestro el código en el cual grabo en la base de datos:
La tabla detalle tiene activada la propiedad "CacheUpdates" En el evento OnBeforePost de la tabla detalle tengo el siguiente código para forzar que el campo COD_DEPARTAMENTO sea el mismo de la tabla maestra:
Aunque la literatura dice que utilizando la instrucción la cual está en la unidad IBUTILS.PAS que se debe agregar en el USES del formulario, debería colocar el valor de forma automática pero la verdad no funciona. En espera de sus comentarios, un calurosos saludo desde Bogotá-Colombia PD: Si así lo quieren puedo subir el código fuente y la base de datos para poder ser más específicos y dar con el problema.
__________________
Ing. LUIS FERNANDO ORJUELA BOGOTA - COLOMBIA |
#2
|
||||
|
||||
Suelen darse estos casos de desesperación .... a mi también me ocurrió.
Casi con toda seguridad tiene que ver con las Transacciones. Probablemente la tabla Detalle depende de una transacción y la tabla maestra de otra diferente. Comprueba al detalle este tema de las transacciones. ... y si no es por ahí, vuelve a comprobar la validez y corrección de las Sentencias SQL para Insert y Update de tu DataSet.
__________________
Piensa siempre en positivo ! |
#3
|
||||
|
||||
Perdón .... !
Acabo de revisar de nuevo tu código. En níngún sitio estás haciendo un Post de la tabla Detalle ! .... con lo cual el evento OnBeforePost nunca se va a ejecutar. Ejecuta tu aplicación en modo Debug paso a paso, y comprueba si realmente en algún momento el programa pasa por el evento OnBeforePost que indicas.
__________________
Piensa siempre en positivo ! |
#4
|
|||
|
|||
Hola Gluglu, gracias por responder e interesarte en mi problema..
Bueno en cuanto a lo que tú dices en tu segundo mensaje, te cuento que no realizo el post sobre la tabla detalle porque ésta tiene activada la propiedad "CacheUpdates" y por tanto lo que debo hacer es un "ApplyUpdates" a la tabla detalle. Nota: todo lo tengo encapsulado en una única transacción... En espera de tus comentarios.. y gracias ante todo...
__________________
Ing. LUIS FERNANDO ORJUELA BOGOTA - COLOMBIA |
#5
|
||||
|
||||
Hola Luis.
Si estás usando componentes IBX con tablas en relación maestro/deltalle y CachedUpdates activado tenés que desactivar el DataSource de la tabla detalle al aplicar los updates. Por ejemplo:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#6
|
||||
|
||||
Cita:
Saludos, |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
tmemdataset insertar registros maestro/detalle | anubis | Lazarus, FreePascal, Kylix, etc. | 5 | 10-03-2011 15:39:24 |
Duplica Registros Maestro Detalle | Moparova | Conexión con bases de datos | 1 | 30-05-2007 11:01:33 |
Inserta Registros maestro/detalle | Vlady | Firebird e Interbase | 2 | 28-10-2006 04:35:48 |
InserciÓn De Registro Con Maestro-detalle | perillan | Conexión con bases de datos | 5 | 23-10-2005 11:15:23 |
Insercion maestro/detalle para aplicacion cliente servidor | mgaray | Conexión con bases de datos | 5 | 17-11-2003 17:20:46 |
|