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)
-   -   Clientdatasets anidados con ADO (https://www.clubdelphi.com/foros/showthread.php?t=26720)

Johnny Q 01-11-2005 17:44:01

Clientdatasets anidados con ADO
 
Un saludo a todos

En internet he visto varios ejemplos de Clientdatasets anidados para crear relaciones maestro/detalle, pero casi todos estan con base en BDE.

He visto que hacen la relacion con la propiedad DataSetField, pero en ADO no no se como funciona, he intentado varias cosas y no he podido saber como asignar esta propiedad.

Si alguien me puede dar una breve explicacion de como se crean ClientDataSets anidados sera de gran ayuda.

Muchas gracias.

luisgutierrezb 01-11-2005 21:51:58

a ver, si entendi:
tienes 2 AdoQuery digamos AdoMaestro y AdoDetalle
en el maestro puede ser:

// Para la tabla maestro:
AdoMaestro.Text := 'Select id,Nombre from Clientes';
AdoMaestro.Open;

MaestroDatasource.Dataset := Maestro;
// Para la tabla Detalle
AdoDetalle.Datasource := MaestroDatasource;
AdoDetalle.Text := 'Select Factura from ventas where idcliente = :id';
AdoDetalle.Open;

y ya con eso, al mover un registro del dataset maestro, te va a mostrar sus correspondientes "facturas" del dataset detalle

luisgutierrezb 01-11-2005 21:53:56

una correccion en la lines
MaestroDatasource.Dataset := Maestro;
debe ser:
MaestroDatasource.Dataset := AdoMaestro;

otra cosa, el enlace no tiene que ser por codigo solamente, puede ser en los componentes

Johnny Q 02-11-2005 14:21:44

Tu explicación es correcta, pero yo necesito saber la configuración de ClientDatasets, pues necesito trabajar los datos en "memoria" antes de que los cambios sean confirmados, y segun lo que he podido averiguar esto se hace mas fácil con ClientDataSets.

Gracias.

jachguate 03-11-2005 02:53:25

Pues en los ClientDataSets no hay nada "especial" que configurar, delphi convertirá automáticamente todas las relaciones maestro/detalle en nested datasets al pasar por el provider.

Saludos.

;)


La franja horaria es GMT +2. Ahora son las 21:11:53.

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