FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
dificultades con DBX
Hola, tengo un problema con el sqldataset, pasa que necesito ver datos de otra tabla con una sentencia SQL, uso DB7 y IB6
el sqldataset tiene el siguiente SQL SELECT TABLA1.*, (SELECT SUM(TABLA2) FROM TABLA2) AS CAMPO_EXTRA FROM TABLA1 el sqldataset esta dentro de un modulo de datos, lo llamo desde un formulario con un provider y un clientdataset, resulta que cuando voy a hacer un alta (insert), me dice que los campos que quiero guardar no existen, y ahi me di cuenta de que no hace el insert sobre la tabla1 sino sobre la tabla2, esto lo corrobore viendo el sqlmonitor, que permite ver todas las transacciones hechas por la conexion DBX. Quisiera saber de que manera lo soluciono, desde ya muchas gracias!!! |
#2
|
||||
|
||||
Hola.
Cuando hay subconsultas por en medio, DBX tiende a liarse sobre el nombre de la tabla donde aplicar los cambios. (Yo creo que se coge el primer nombre de tabla que encuentra). Simplemente, indica la table base, en el evento OnGetTableName del sqlDataset : TableName := 'TABLA1'; Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#3
|
||||
|
||||
gracias por tu ayuda, pero..., siempre hay uno, no encontre el evento OnGetTableName en el SQLDATASET, sino en el provider, hago la aclaracion por las dudas que alguien mas lea esto...,
muchas gracias!!! |
#4
|
||||
|
||||
Hola, bueno, ahora anda todo barabaro, pero, "siempre hay uno", me esta faltando que me actualice el campo que se calcula en la sentencia SQL del dataset, resulta que si inserto un registro, lo hace bien, pero tengo que salir del formulario y volver a entrar para que actualice, quiero saber si existe la posibilidad de actualizar el registro pero sin salir o hacer close y open. Ya he probado con refresh, refreshrecord y updaterecord en el clientdataset y no ha pasado nada.
pd: si inserto un registro y luego inmediatamente inserto otro, me actualiza el primero y asi sucesivamente desde ya muchas gracias!!! Última edición por wonder boy fecha: 27-05-2004 a las 01:23:14. |
#5
|
||||
|
||||
Hola.
Puedes hacer un Refresh sobre el ClientDataset, (incluso puedes probar el RefreshRecord, que debería ejecutarse más rápido). Lo tienes que llamar después del ApplyUpdates (cuando los datos ya han sido pasados a la base de datos). Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#6
|
||||
|
||||
Hola
En realidad, yo estoy haciendo un refresh despues de el aplyupdates(0), o sea que no me anda tu sugerencia, aunque es valida para otras cosas, no lo es para actualizar estos campos calculados en el SQLDATASET y el CLIENTDATASET. si pueden ayudarme me sera de mucha ayuda, gracias miles |
|
|
|