Relacionar 2 tablas en el data module

Lo primero agradecerte otra vez la respuesta anterior.
Como te indique estoy empezando y me he atascado otra vez. Estoy creando una pequeña aplicación en delphi y base de datos interbase. Necesitaría saber como poder relacionar 2 tablas en el data module (diagram). Se trata de la tabla albaranes y lineas para poder relacionarlas y que las lineas se numeren desde dicho numero de albarán.

1 Respuesta

Respuesta
1
Que tal bueno mira para relacionar dos tablas lo haces a través de las propiedades MasterFields y MasterSource, por ejemplo tu tienes dos tables una es la principal y otra los detalles entonces conectas un DataSource a la table principal y en la tabla detalle pones el datasource en la propiedad MasterSource luego en MasterField abres la ventana y te mostrara los campos de las dos tablas seleccionas los campos de relación y listo...
Perdona por no especificarte más.
Lo que necesito realmente es establer relación master/detail entre los 2 ibdataset albaranes y lineas de albaranes, que las lineas se numeren desde el numero de albarán y que las propiedades selectsql, insertsql, modifysql y deletesql definidas en los ibdataset me funcionen.
Saludos y perdona las molestias.
Bueno mira, mejor haz esto pon us 2 dataset conectados a su respectivo UpdateSQL ok, pero al dataset que sera el detalle en la clausula where en donde relaciones las id's de la master como de la detalle, ahí pones parámetro... entonces el datasource conectado a la master tiene un evento llamado onDataChange y en ese evento pondrías el siguiente código:
if (QueryDetalle.Params[0].AsString <> QueryMasterCAMPOID.AsString) or (not QueryDetalle.Active) then
begin
QueryDetalle.Active := false;
QueryDetalle.Params[0].Value := QueryMasterCAMPOID.Value;
QueryDetalle.Active := true;
end;
Que significa esto: que cada vez que te muevas en un registro de tu master tu detalle se activara mostrándote los registro que corresponden a dicho master, si me explico.
Y de esta manera es mucho mejor que hacer una relación master/detail al fin de cuentas es master detail. Ahora porque es mejor, porque cuando haces master/detail el detail siempre se activa completo es decir toda la tabla y una vez activada hace el filtro según el master donde este posicionado, y como veras esto seria mucho más tardado cuando tienes mucha información.
Bueno espero te sirva saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas