1. Configurar el componente SQLConnection. Ahora suponemos dos talbas TABLA_MAESTRA y TABLA_DETALLE. Colocar en un DataModule los siguientes componentes:
- Dos SQLDataSet (dstMestro y dst Detalle)
- Un DataSetProvider (dspMaestro)
- Dos ClientDataSet (cdsMaestro y cdsDetalle)
2. en un Fomulario colocar
- Tres DataSource (dsLinkMaestro, dsMaestro y dsDetalle)
3. Escribir la setencia SQL en la propiedad
Command Text del dstMaestro
SELECT <columnas_de_tabla_maestra>
FROM TABLA_MAESTRA
WHERE <columna_PK_de_la_tabla_maestra> = :Parametro
4. Configurar el la propiedad
Params, "Parametro" conforme su tipo, mejor que sea Integer entonces
DataType = ftInteger
5. Cambiar la propiedad
DataSet de dsLinkMaestro para que apunte a dstMaestro
6. Escribir la sentencia SQL de dstDetalle en la propiedad
CommandText:
SELECT <columnas_de_la_tabla_detalle>
FROM TABLA_DETALLE
WHERE <columna_PK_de_la_tabla_detalle> = :<columna_PK_de_la_tabla_maestra>
NOTA IMPORTANTE:

El nombre del parametro en la tabla detalles tiene que ser obligatoriamente igual al nombre de la columna que se corresponde en la tabla maestra.
7. Cambiar la propiedad
DataSource de dstDetalle
8. Cambiar la propiedad
DataSet de dspMaestro a dstMaestro
9. Cambiar la propiedad
ProviderName de cdsMaestro a dspMaestro
10. Agregar los
TFields del cdsMaestro. Se tiene que poder ver un campo "nuevo", de tipo anidado que va a ser el responsable de la relacion con la tabla de detalles.
11. Cambiar la propiedad
DataSetField de cdsDetalle , colocando en ella el nombre del campo anidado.
12. Cambiar la propiedad
DataSet de dsMaestro a cdsMaestro
13. Cambiar la propiedad
DataSet de dsDetalle a cdsDetalle
14. Agregar los
TFields de cdsDetalle
A partir de ahora lo unico que hay que hacer es "insertar" un valor en "Parametro" y abrir eñ cds_Maestro, el resto se hace automaticamente.
OBSERVACIONES
Si se quiere utilizar la propiedad
CommandText del ClientDataSet (y no del SQLDataSet) se tiene que colocar TRUE en la propiedad
poAllowCommandText del DataSetProvider ligado al ClientDataSet.