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 10-04-2009
Avatar de jphv
jphv jphv is offline
Registrado
 
Registrado: feb 2009
Ubicación: Esperanza, Santa Fe
Posts: 2
Poder: 0
jphv Va por buen camino
Question 2 DBGrid para 1 Dataset base (utilizando DataSetProvider y ClientDataSet)

Hola a todos! Hace poco me di cuenta que he estado haciendo mucho trabajo a pata y que existen componentes que me simplican la vida. Particularmente hablo de TClientDataSet. Mas de uno sabrá lo que se siente cargar los datos de una consulta a componentes visuales comunes (edit, label, memo) y volcar todos los datos por consulta cuando se ha aceptado y validado la información.
Es mi culpa por no haber leído un poco más en su momento de la ayuda en Inglés de mi Delphi 5....

Bueno, sacar un poco mi ignorancia respecto, a esto me llevo a querer buscar otras formas fáciles para hacer lo que sería un trabajo artesanal.

Lo que quiero hacer:
Escribo una aplicación de gestion de miembros de un gimnasio, actividades en las que participa y cuotas correspondientes.

Tengo una pestaña que me muestra todas las cuotas del miembro elegido. Los datos de las cuotas son:
  • Fecha (mes, año)
  • Estado (Pago, Debe, Falto -ese mes-, No se dicta)
  • Monto (puede variar la cuota con el tiempo)
  • Fecha pago (cuando entrego la platita)
Busco destacar lo importante, asi que en la interfaz quiero poner 2 DBGrid
DBGridSup --> muestra cuotas Debe
DBGridInf --> muestra cuotas Pago, Falto, No se dicta

La objetos propuestos (ayuda de acá en adelante) son:
DataSet1 --> trae todas las cuotas de ese miembro
DataSetProvider -> DataSet1
ClientDataSetSup -> DataSetProvider --> lo asocia DBGridSup
ClientDataSetInf -> DataSetProvider --> lo asocia DBGridInf

A ClientDataSetSup le pongo un filtro para que muestre las cuotas Debe (estado=3)
A ClientDataSetInf le pongo un filtro para que muestre todos los demás (estado<>3)

Mi idea era asociar de alguna manera los DBGrid para que cuando cambio datos en uno, si cumple X condición, deja de aparecer en un listado y aparece en el otro DBGrid. Todo esto usando ClienteDataSet para que no sean efectivos los cambios hasta que uno diga "Si, acepto" ... uuu que feo sonó.

Demás está decir que mi configuración no cumple los objetivos. Creo que la estoy pifiando conceptualmente. Intenté usar ApplyUpdates(0) para ver si eso hacia que lo que desaparecía en un DBGrid aparecia en el otro y no funciono.

Les agradezco a quien me pueda tirar un poco de luz sobre este asunto.

Saludos!

Última edición por jphv fecha: 10-04-2009 a las 22:52:41. Razón: ampliar descripcion de titulo
Responder Con Cita
  #2  
Antiguo 11-04-2009
Rockin Rockin is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 264
Poder: 22
Rockin Va por buen camino
He entendido que cada vez que hagas un cambio en un DBGrid, en el otro debe aparecer o no dependiendo del cambio que hagas. Creo que lo mejor es que cada vez que hagas el cambio refresques el DBGrid, para ver si hay cambios.

Saludos.
Responder Con Cita
  #3  
Antiguo 11-04-2009
Avatar de jphv
jphv jphv is offline
Registrado
 
Registrado: feb 2009
Ubicación: Esperanza, Santa Fe
Posts: 2
Poder: 0
jphv Va por buen camino
Gracias Rockin! Aplicar Refresh era lo que faltaba hacer para mostrar los cambios luego del ApplyUpdates.

Jugué un poco con una aplicación de pruebas Proyect1 =) de siempre para despejar dudas y me choqué con la cruda realidad. El ApplyUpdates necesario antes de Refresh me manda los cambios a la base de datos x( Así pues, me quedo sin la posibilidad de cancelar dichos cambios.

Seguí buscando y encontré el procedimiento CloneCursor.

Ahora, teniendo el ClientDataSet1 y su clon, los cambios en uno se ven en el DBGrid que les corresponde de manera automática y sólo es necesario el ApplyUpdates o CancelUpdates según lo que se decida al final.

Ahora voy a renegar con los campos fkCalculated o fkLookUp que me estan dando problemas en los ApplyUpdates.

Saludos!
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
Se puede usar un DBGrid sin ningun Dataset rgstuamigo OOP 4 06-02-2009 23:07:17
Actualizar un dataset desde otro dataset jafera Conexión con bases de datos 17 18-12-2008 23:57:10
Ver DataSet en un DBGrid Cecilio Conexión con bases de datos 4 08-09-2007 18:14:32
para las columnas del dbgrid jhcaboverde Varios 8 07-02-2007 19:27:58


La franja horaria es GMT +2. Ahora son las 06:32:43.


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