PDA

Ver la Versión Completa : Error - ClientDataSet Anidados


wflorest
04-12-2013, 23:51:46
Ante todo buenas tardes a todos los miembros.

Hoy les presento un comportamiento extraño al usar ClientDataSet y dentro de ellos campos LookUp.

En la imagen adjunta podrán observar lo que sucede
También he subido el código fuente con la base de datos en access.

Ahora les explicaré la estructura de la base de datos:

- Tengo 5 tablas:
1.- Pais
2.- Departamento
3.- Provincia
4.- Distrito
5.- Empresa

Las 4 primeras guardan información de cada pais y sus respectivos departamentos, provincias, distritos
Donde:
- Departamento tiene como parámetro al campo <PaisId> el cual maneja la relación con la tabla "Pais"
- Provincia tiene como parámetros a los campos <PaisId> y <DepaId> los cuales manejan la relación con la tabla "Departamento"
- Distrito tiene como parámetros a los campos <PaisId>, <DepaId> y <ProviId> los cuales manejan la relación con la tabla "Provincia"

La 5ta. Tabla es la empresa donde se guardan los campos de cada una de las tablas:
<PaisId>, <DepaId>, <ProviId> y <DistriId>

Bien el manejo de los ClientDataSet es el típico Maestro Detalle, pero en este caso y como pueden observar la relación es diferente ya que empieza de la siguiente manera

Tabla master: Pais
Tabla Detalle: Departamento

Tabla master: Departamento
Tabla Detalle: Provincia

Tabla master: Provincia
Tabla Detalle: Distrito

En el código que adjunto podrán observar como es que se ha configurado:
1.- Los Query's
2.- Los ClientDatSet

Cabe destacar que el ejemplo lo hice con Delphi XE3 base de datos Access y los componentes utilizados son los que trae FireDac TADConnection y TADQuery respectivamente.

También debo mencionar que lo mismo lo realicé en Delphi XE5 y en este existe un caso aun mas extraño.

Espero alguien pueda ayudarme a resolver dicho problema.
Gracias