![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
![]() Hola gente del foro, queria consultarles sobre un problema relacionado con realizar altas en una relación maestro detalle, que me surgio hace poco y no se como solucionarlo, paso a comentarles:
Tengo en una base de datos Firebird 2.0 las siguientes tablas CREATE TABLE TABLA1 ( ID INTEGER NOT NULL, NOMBRE VARCHAR(50) ); CREATE TABLE TABLA2 ( ID INTEGER NOT NULL, ID_TABLA1 INTEGER, NOMBRE VARCHAR(50) ); ALTER TABLE TABLA2 ADD CONSTRAINT FK_TABLA2 FOREIGN KEY (ID_TABLA1) REFERENCES TABLA1 (ID) ON DELETE CASCADE ON UPDATE CASCADE; En el proyecto de Delphi (Delphi 2007) tengo un Formulario y un modulo de datos, en la reclación Maestro/Detalle utilizo componentes de DBExpress Formulario: ![]() Maestro/Detalle ![]() Las prompiedades de los componetes son: Modulo de datos: SQLDataSet1: - CommandText: select * from TABLA1 - SQLConnection: Conexion - Tiene los componentes de campo creados - ID --> ProviderFlags --> pfInKey --> True DataSource1: DataSet: SQLDataSet1 SQLDataSet2: - CommandText: select * from TABLA2 where ID_TABLA1 = :ID - SQLConnection: Conexion - DataSource: DataSource1 - Tiene los componetes de campo creados - ID --> ProviderFlags --> pfInKey --> True DataSetProvider1: - DataSet: SQLDataSet1 - Exported: False - UpdateMode: upWhereChanged - poIncFieldProps: True - poCascadeDeletes: True - poCascadeUpdates: True - poAutoRefresh: True - poPropagateChanges: True - poAllowCommandText: True ClientDataSet1: - ProviderName: DataSetProvider1 - Tiene los componentes de campo creados y aparece el campo SQLDataSet2 ClientDataSet2: - DataSetField: ClientDataSet1SQLDataSet2 - Tiene los componentes de campo creados Hasta ahí parece estar todo bien, si tengo datos me los muestra, si quiero editar o eliminar registros del maestro o del detalle me deja hacerlo sin problemas, el problema aparece cuando creo un nuevo registro del detalle, al hacer un post en el detalle me genera el siguiente error ![]() Pero los datos son correctos, por lo que estuve observando, el problema es que en la relación Maestro/Detalle Delphi "piensa" que el campo ID del detalle es la Foreign Key en vez de el campo ID_TABLA1, por lo que estuve averiguando este problesa surge cuando el campo foreign key no tiene el mismo nombre que el id del maestro, ¿Hay alguna forma de cambiar la relación entre estos campos y especificar que el campo ID_TABLA1 es el foreign key y no el campo ID? Saludos y espero que me puedan ayudar Para los que quieran ver el Proyecto se encuentra acá
__________________
¡Oh nooo! no compartas, compartir es pirateria, compartir te llevara a la carcel - Revolution OS |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problema tabla Maestro-detalle en la q la pk de t.detalle formad por 2cods de la maes | akinom38 | Varios | 1 | 09-11-2007 19:27:44 |
Problema con maestro detalle | escullar | Impresión | 2 | 21-12-2005 09:53:01 |
Problema con Maestro-Detalle | AGAG4 | Firebird e Interbase | 8 | 11-09-2004 18:23:38 |
Problema con Maestro-Detalle | AGAG4 | Firebird e Interbase | 2 | 20-08-2004 15:51:14 |
Problema con maestro/detalle | joanajj | Conexión con bases de datos | 7 | 28-07-2003 18:52:42 |
![]() |
|