Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Master/Detail con IBDataSet (https://www.clubdelphi.com/foros/showthread.php?t=2854)

Delfino 10-08-2003 20:24:19

Master/Detail con IBDataSet
 
Alguien puede darme una idea de como hacer un master/detail entre dos tablas con las IBDataset? de antemano gracias..

__cadetill 10-08-2003 23:17:40

Tienes que hacerlo como si de 2 Querys se trataran, es decir, con parametros en las sentencias SQL. Es decir, a la propiedad Datasource del detalle le indicas el TDataSource del maestro y, luego en el SelectSQL, si por ejemplo se relacionan por el campo ID del maestro y ID_Fac del detalle, pones algo como

Código:

select *
from DetFac
where ID_Fac = :ID

Espero te sirva

Delfino 11-08-2003 00:05:33

No me sirve pq cuando le pongo:

Select * From LIBROS Where LIBROS.NOMB = AUTORES.NOMB

me dice q "unknown column AUTORES.NOMB"
Si le pongo:

select NB_PAGES, TITLE, NOMB from LIBROS L, AUTORES A
where L.NOMB=A.NOMB

cuando navego no ajusta el nombre del autor con sus libros o sea no hay filtro de la tabla detalle para q muestre solo los libros pertenecientes a este autor, El datasource del IBDataSet detalle esta ligado con la misma y con el DataSource del IBDtatSet maestro como me has sugerido.
Espero solucionarlo si me das mas ideas, asias..

__cadetill 11-08-2003 00:13:55

Cita:

Posteado originalmente por Delfino
Select * From LIBROS Where LIBROS.NOMB = AUTORES.NOMB
en lugar de eso, pon....

Código:

Select * From LIBROS Where NOMB = :NOMB
Espero te sirva

Delfino 11-08-2003 12:40:40

Funciono, muchas gracias, la verdad me tiene perdido un poco lo del IBDataSet.
Una ultima, supongo q para hacer añadir automaticamente el ID correspondiente en el detalle hay q recurrir al evento onAfterInsert, y tb para modify y delete, o existe alguna manera de q se haga sin escribir codigo como pasa con el IBTable???

__cadetill 11-08-2003 16:00:56

que yo recuerdo, sí, tienes que hacerlo por codigo.

Los modify y deletes, te recomiendo que definas una relacion de integridad en cascada directamente en la BD, asi te ahorraras trabajo de programación


La franja horaria es GMT +2. Ahora son las 04:52: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