Ver Mensaje Individual
  #2  
Antiguo 15-10-2012
Avatar de Young
Young Young is offline
Miembro
 
Registrado: abr 2006
Ubicación: San Felipe, Chile
Posts: 86
Reputación: 19
Young Va por buen camino
Hola Leopard2, yo utilizo los componentes Interbase hace bastante tiempo y para hacer lo que dices (bueno cualquier edición) utilizo los componentes dataset y trataré de indicarte más o menos como lo hago. Para establecer una relación maestro/detalle pongo dos componentes del tipo ibdataset, supongamos que son facturas (albaranes como lo llaman los españoles), una de las tablas tiene la cabecera y la otra el detalle y obviamente están relacionados por un campo id o numero de factura.

Posteriormente completo la propiedad SelectSQL, luego botón derecho sobre el componente y pulsas Dataset Editor, en el dialogo que te aparece haces click en secuencia a los botones que estan a la derecha, con esta acción se completarán las propiedades restantes con las sentencias sql para insertar, modificar, eliminar y refrescar. Repite esta acción con la tabla de detalle y al igual que la tabla de cabecera debes restringir la edición a su ID, ejemplo:

Código SQL [-]
SELECT * CABECERA
WHERE CABECERA.ID = :ID;

SELECT * FROM DETALLE
WHERE DETALLE.ID = :ID;

Bueno estoy suponiendo que sabes usar los parámetros en este tipo de componentes. En este punto viene lo importante, el nombre del parámetro debe ser igual al del campo (por lo menos en la tabla detalle), y esto debe ser así por que ahora a la tabla detalle en la propiedad datasource le vamos a enlazar el datasource de la tabla de cabecera (o dataset de cabecera), entonces el componente detalle buscara en el componente de cabecera un campo con el mismo nombre del parámetro y lo utilizará, de esta manera y sin escribir ninguna línea de código ya tienes una relación maestro detalle funcionando. Está demás comentar que si cambias de registro en la tabla de cebecera, la tabla de detalle se actualizará automáticamente.

Espero que esto te ayude un poco, inténtalo y verás lo bien que marcha.

Saludos.
Responder Con Cita