Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 26-05-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola ebeltete.

Declarar la relación en la creación de la tabla sería algo como:
Código SQL [-]
CREATE TABLE DETALLE(
   DETALLE_ID INTEGER DEFAULT 1 NOT NULL,
   CAMPO1 CHAR(6) NOT NULL,
   CAMPO2 VARCHAR(30) NOT NULL,
   ...
   REFMAESTRO INTEGER NOT NULL,
   CONSTRAINT DETALLE_PK PRIMARY KEY(DETALLE_ID),
   FOREIGN KEY(REFMAESTRO) REFERENCES MAESTRO(MAESTRO_ID) 
     ON DELETE SET NULL 
     ON UPDATE CASCADE  /* acciones referenciales (pueden omitirse) */ 
);
Estas son las acciones referenciales:
NO ACTION: No hará nada.
CASCADE : Realizará la misma acción en las tablas relacionadas.
SET NULL : Pondrá NULL en las columnas de las tablas relacionadas.
SET DEFAULT : Pondrá el valor definido por defecto en las columnas de las tablas relacionadas.

Ahora desde Delphi, un ejemplo con los componentes IBX.
Teniendo dos TIBDataSet , llamemoslos: tbMaestro y tbDetalle, los cuáles tienen sus respectivos TDataSources: dsMaestro y dsDetalle.
Los cambios se harán sobre tbDetalle y son:
A la propiedad DataSource de tbDetalle tenés que asignarle dsMaestro y en su propiedad SelectSQL, algo como:
Código SQL [-]
SELECT * FROM DETALLE
WHERE REFMAESTRO = :MAESTRO_ID
Los nombres de tabla y campos deberás cambiarlos por los que vos pusiste.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 26-05-2011 a las 13:47:11. Razón: CORRECCION: en código SQL.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Crear Tabla Firebird mjjj Firebird e Interbase 6 26-05-2008 18:12:16
Tabla de Referencia Cruzada santi33a MS SQL Server 3 03-02-2006 21:49:00
como ejecutar un query haciendo referencia a una tabla que esta en red????? reggaealex SQL 2 20-01-2005 19:36:48
Referencia a los campos de una tabla en Interbase mglucero Firebird e Interbase 2 05-11-2004 09:45:57
UPDATE con referencia a otra tabla... JorgeBec SQL 6 05-08-2004 20:48:36


La franja horaria es GMT +2. Ahora son las 04:51:11.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi