FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
guardar registros en un IBDataSet que es consulta a varias tablas??
Hola,
Estoy trabajando con IB 7, en dialecto SQL 3, con Delphi 6. En la aplicación necesito tener una consulta a varias tablas de mi base de datos. Los registros resultantes de esta consulta se muestran en un DBGrid, y en unos DBEdit. Pero luego necesito que, en el mismo IBDataSet, se guardan nuevos registros o se modifiquen los ya existentes. El motivo de hacer la consulta, es por que la tabla principal, tiene guardado en sus campos, solo códigos. Estos códigos, que son numéricos, tienen su significado o interpretación definidos en las tablas "secundarias", a las que llama, para que se muestre en el programa, no el campo con el código numérico, sino el campo de la tabla secundaria con el significado escrito vinculado a este código. Al insertar o modificar, necesito que, lo que aparece en los dbEdit esto es, los campos descriptivos, de alguna manera, busquen en las tablas secundarias correspondientes, el código que tienen asociado y escriba dicho código, en el campo asociado, de la tabla principal. El código que tengo para esto en SelectSQL es: select D1.NUMALU, D1.CODIGO, D1.NUMGRUP, D1.FECINI, D1.CAUBAJA, D1.FECFIN, D1.CODVTO, D1.NUMEMPLEADO, D2.PRODUCTO, D2.ALIAS, D2.NUMGRUP, D3.PRODUCTO, D3.DESCRIP, D4.CODIGO, D4.DESCRIPCION, D5.NUMGRUP, D5.DESCRIPCION, D5.CODVTO, D6.NUMEMPLEADO, D6.PROFESOR from MATRI D1 inner join GRUPOS D2 on (D2.NUMGRUP = D1.NUMGRUP) inner join CAUBAJA D4 on (D4.CODIGO = D1.CAUBAJA) inner join PROFE D6 on (D6.NUMEMPLEADO = D1.NUMEMPLEADO) inner join PRODU D3 on (D3.PRODUCTO = D2.PRODUCTO) inner join VTOS D5 on (D5.NUMGRUP = D1.NUMGRUP and D5.CODVTO = D1.CODVTO) where (D1.NUMALU=:NUMALU) order by D1.NUMALU, D1.CODIGO Por ejemplo. El campo, d1.numgrup (de la tabla principal TbMatri), busca, su valor actual, en el campo D2.numgrup (de la tabla secundaria grupos). En la aplicación se muestra este campo, d2.alias, que es la descripción del valor que tiene d1.numgrup. Lo que necesito es que, cuando el usuario, a través del programa inserte un registro nuevo, o modifique el valor del campo d2.Alias, se identifique el valor que tiene en d2.numgrup en ese registro y lo guarda en d1.numgrup. Lo que tengo en InsertSQL es: insert into MATRI (NUMALU, CODIGO, NUMGRUP, FECINI, CAUBAJA, FECFIN, CODVTO, NUMEMPLEADO) values (:NUMALU, :CODIGO, :NUMGRUP, :FECINI, :CAUBAJA, :FECFIN, :CODVTO, :NUMEMPLEADO) y lo que tengo en ModifySQL es: set NUMALU = :NUMALU, CODIGO = :CODIGO, NUMGRUP = :NUMGRUP, FECINI = :FECINI, CAUBAJA = :CAUBAJA, FECFIN = :FECFIN, CODVTO = :CODVTO, NUMEMPLEADO = :NUMEMPLEADO where NUMALU = :OLD_NUMALU and CODIGO = :OLD_CODIGO Espero haberme explicado suficientemente bien, pues el tema es algo farragoso. Muchas gracias, de ante mano, por la ayuda. Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
|
|
|