Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-09-2006
Avatar de armadillo
armadillo armadillo is offline
Miembro
 
Registrado: abr 2005
Posts: 35
Poder: 0
armadillo Va por buen camino
Refresco de Dataset

Hola a tod@s!!
Necesito un experto en componentes del Tipo DataSet :-), explico mi problema, antes que nada aclaro mi forma de trabajo, Uso Delphi 7 y FireBird para el acceso a la base de datos uso los componentes Interbase y FibPlus indistintamente. Casi siempre he trabajado con tablas del tipo PAradox, pero hace un par años entre de lleno con Interbase/Firebird.
He notado un pequeño problema que no se como solucionar elegentemente, me explico, da igual que use los componentes Interbase o FibPlus, ya que el problema es el mismo, resulta que si en el la propiedad Select del DataSet pongo esta consulta:

SELECT
ID_CLIENTE,
ID_PAGOS,
ENTRADAS,
SALIDAS,
ENTRADAS-SALIDAS AS SALDO
FROM PAGOS


Vemos que el campo SALDO es de tipo calculado, el tema es que cada vez que inserto un registro, en el DBGrid o DBEdit, se actulizan perfectamente todos los campos excepto el calculado, en este caso "SALDO", por mas que presione en el boton actualizar del componente DBNvigator, no actualiza nada (me refiero a saldo) la unica manera es forzar al DataSet a ejecutar nuevamente el codigo SELECT que lo logro cerrando y abriendo el DataSet. Si en este caso la tabla pagos fuera una
tabla de tipo detalle, y que la maestro fuera CLIENTES, no haria falta cerrar y abrir el dataset con solo cambiar el registro en el dataset maestro y luego volver al registro original, ahi si tengo actualizado correctamente todos los campos en el detalle.
Alguien podria decirme a que se debe esto? o como podria forzar al dataset a que re-lea ..... hmmmm a ver si me pueden decir a donde apuntar ya que me esta volviendo un poco loco el tema, claro que es por falta de conocimiento sobre el tema...

Desde ya muchas gracias
Responder Con Cita
  #2  
Antiguo 29-09-2006
Nelet Nelet is offline
Miembro
 
Registrado: may 2003
Ubicación: Picassent - Valencia
Posts: 95
Poder: 22
Nelet Va por buen camino
Prueba con
Código Delphi [-]
Dataset.Refresh
después de insertar.
__________________
_____________________________________
And follow me to where the real fun is
Responder Con Cita
  #3  
Antiguo 29-09-2006
Avatar de armadillo
armadillo armadillo is offline
Miembro
 
Registrado: abr 2005
Posts: 35
Poder: 0
armadillo Va por buen camino
Mira, el poner DataSet.Refresh, es utilizar el mismo metodo que el boton Actualaizar del DBNavigator, cosa que comente no funcionaba, igualmente lo he probado, en el evento AfterPost, ya que si lo hago en AfterInsert, se me cancela la Insercion..., pero nada sigo con el problema y la duda Gracias igual
Responder Con Cita
  #4  
Antiguo 29-09-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Solución:

Close y Open.

El Refresh no funciona en IB ni FB!

Saludos
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #5  
Antiguo 30-09-2006
Nelet Nelet is offline
Miembro
 
Registrado: may 2003
Ubicación: Picassent - Valencia
Posts: 95
Poder: 22
Nelet Va por buen camino
Bueno es saber que el refresh no funciona en IB e FB....la de cosas que se aprenden cuando te equivocas.
__________________
_____________________________________
And follow me to where the real fun is
Responder Con Cita
  #6  
Antiguo 30-09-2006
Avatar de armadillo
armadillo armadillo is offline
Miembro
 
Registrado: abr 2005
Posts: 35
Poder: 0
armadillo Va por buen camino
Quisiera aclarar un poco esto de que no funciona, en realidad lo que no funciona es el refresco de los campos calculados hecho en el server, pero si has usado IB-FB y has hecho una pequeña aplicacion de mantenimiento de una tabla, o sea un ABM (Altas Bajas y Modificaciones), veras que inmediatamente despues de agregar los datos (tabla.post) los datos agregados se ve en tu pantalla, pero quizas no se vean en la pantalla de otro User, este otro User debe hacer un tabla.refresh y vera los datos añadidos por ti, esto significa que el refresh funciona, pero aclaro la discucion viene por el tema de los campos calculados
Responder Con Cita
  #7  
Antiguo 02-10-2006
Nelet Nelet is offline
Miembro
 
Registrado: may 2003
Ubicación: Picassent - Valencia
Posts: 95
Poder: 22
Nelet Va por buen camino
Hombre...lo de la pantalla de otro usuario en otro equipo es normal...pero también pasaría con el Open y el Close. La verdad...me extrañaba que el metodo Refresh no funcionara en IB y FB..pq no los he utilizado casi nada (me toca trabajar con SQLServer).
Conclusión: En el mismo equipo si funcionaria el Refresh...o quizá el Requery, no se si los componentes de IB aceptan ese método.
__________________
_____________________________________
And follow me to where the real fun is
Responder Con Cita
  #8  
Antiguo 02-10-2006
jasensio jasensio is offline
Registrado
 
Registrado: sep 2006
Posts: 5
Poder: 0
jasensio Va por buen camino
Question Mantener el registro insertado al refrescar

Yo tengo otra cuestión, uso FB y IBObjects, cuando inserto un registro nuevo, quiero que al refrescar se mantenga en el formulario ese mismo registro que acabo de insertar en lugar de que salga otro registro cualquiera de la consulta. ¿Sabeis como se puede solucionar este problemilla?
Responder Con Cita
  #9  
Antiguo 02-10-2006
Avatar de armadillo
armadillo armadillo is offline
Miembro
 
Registrado: abr 2005
Posts: 35
Poder: 0
armadillo Va por buen camino
Necesito mas informacion

Mira, no he usado nunca esos componentes, pero en lo global no creo que haya muchas diferencias, supongo que tendra las propiedades SQL's para el SELECT, UPDATE, REFRESH, DELETE, INSERT, Verdad? y si algo que te deje configurar esas opciones.
Para poder contestar a tu pregunta necesito eso, saber si lo que te digo es correcto, y deberias postear que tienes metido en esas propiedades....

SUERTE!!
Responder Con Cita
  #10  
Antiguo 02-10-2006
jasensio jasensio is offline
Registrado
 
Registrado: sep 2006
Posts: 5
Poder: 0
jasensio Va por buen camino
tiene las propiedades editSQL, deleteSQL, insertSQL... que son autogeneradas por el componente a la hora de hacer un keylink por ejemplo. Uso FireBird y componentes IBO. Estas propiedades estan vacías. En la propiedad SQL es donde hago la consulta, y como ya te decía las inserciones y actualizaciones y borrados supongo que se autogeneran en esas propiedades (editSQL y tal), hasta ahi voy bien?
Gracias
Responder Con Cita
  #11  
Antiguo 02-10-2006
Avatar de armadillo
armadillo armadillo is offline
Miembro
 
Registrado: abr 2005
Posts: 35
Poder: 0
armadillo Va por buen camino
Y no podes postear las SQL's que tenes en cada una de esas propiedades?, si no podre ayudarte, ya que el problema debe venir, si no me equivoco en la propiedad REFRESH del SQL, pero si no veo el SELECT y el REFRESH nadie podra darte una mano...
Responder Con Cita
  #12  
Antiguo 02-10-2006
Nelet Nelet is offline
Miembro
 
Registrado: may 2003
Ubicación: Picassent - Valencia
Posts: 95
Poder: 22
Nelet Va por buen camino
Si el registro que has insertado es el último lo tienes facil
Código Delphi [-]
DataSet.Last
Sino...pos ya es mas complicado...deberás saber a que registro quieres volver y buscarlo después del refresh.
__________________
_____________________________________
And follow me to where the real fun is
Responder Con Cita
  #13  
Antiguo 03-10-2006
jasensio jasensio is offline
Registrado
 
Registrado: sep 2006
Posts: 5
Poder: 0
jasensio Va por buen camino
Smile

Gracias Nelet!!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Copiar el contenido de un DataSet a otro DataSet Javi2 Varios 82 22-11-2022 09:26:16
Refresco de tablas wuepe Conexión con bases de datos 4 16-01-2006 09:55:54
Refresco carlomagno Firebird e Interbase 2 27-01-2005 19:59:28
Refresco de Datos con ADO Ivr Conexión con bases de datos 1 15-10-2004 14:11:07
Refresco de datos con ADO fjcg02 Conexión con bases de datos 2 23-01-2004 14:03:24


La franja horaria es GMT +2. Ahora son las 19:33:52.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi