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 25-08-2008
Avatar de Carmelo Cash
Carmelo Cash Carmelo Cash is offline
Miembro
 
Registrado: jul 2003
Ubicación: Buenos Aires
Posts: 261
Poder: 21
Carmelo Cash Va por buen camino
¿ Que Método usar para refrescar los Combobox ?

Hola Foro:

Estoy Utilizando Delhi 6 y SQL Server 2005, para conectarme uso DBexpress.

El problema que tengo es que al abrir los formularios, los combobox están actualizados, pero si en alguna terminal agregan un registro (por ejemplo) a al tabla de "Provincias", este registro no se vé en los combobox de los formularios que están abiertos.
Por ahora deben cerrar y volver a abrir el formulario pero no es una solución muy elegante que digamos.

los combobox que uso son los "DBLookupCombobox" conectados a un
TDataSourse>>TClientDataSet>>TDatasetProvider>>TSQLQuery>>TSQLConection ...(uff!...)

Los puedo refrescar haciendo

Código Delphi [-]
ClientDataSet.Active:=False;
ClientDataSet.Active:=True;

Pero el tema es ¿Cuando y cómo?.

1- No vale hacerlo en el evento "on Click", ya que genera un gran tráfico de red y los datos del combobox se modifican muy de vez en cuando.

2- Puede ser una variable que diga "Si Hay que refrescar" y Preguntar en el evento on Click por esa variable. mmmm... no sé.

3- Puede ser colocar en el formulario un Botón que diga "Refrescar"... (no me gusta, pero...)

4- Colocar un Timer que refresque cada tanto ( generaría un tráfico de red inútil ).

Lo ideal sería que los combobox se atualicen unicamente al ser modificada al tabla.

Hace un tiempo atrás dejé planteado este tema pero con otra Base de Datos y no quedó aclarado, tal vez con SQL Server se pueda solucionar.

Desde ya muchas gracias por su atención.
Responder Con Cita
  #2  
Antiguo 25-08-2008
Avatar de felipe88
[felipe88] felipe88 is offline
Miembro Premium
 
Registrado: may 2007
Ubicación: Mi Valle del Cauca... Colombia!!!
Posts: 1.120
Poder: 19
felipe88 Va por buen camino
Si solo deberia cambiar cuando se hace alguna actualizacion en la Bd, creo que es el momento en el que deberia actualizar el combo, o simplemente la pasas el valor que va a ser agregado en la tabla al combo... es una idea
__________________
Web
Responder Con Cita
  #3  
Antiguo 25-08-2008
Avatar de Carmelo Cash
Carmelo Cash Carmelo Cash is offline
Miembro
 
Registrado: jul 2003
Ubicación: Buenos Aires
Posts: 261
Poder: 21
Carmelo Cash Va por buen camino
Gracias Felipe:
Efectivamente "deberia cambiar cuando se hace alguna actualizacion en la Bd, creo que es el momento en el que deberia actualizar el combo", pero el tema es cómo me entero que se actualizó la BD sin estar preguntado constantemente?.
Estoy buscando algún componente que me dispare el proceso, pero todavía no encuentro ninguno.
Responder Con Cita
  #4  
Antiguo 25-08-2008
Avatar de felipe88
[felipe88] felipe88 is offline
Miembro Premium
 
Registrado: may 2007
Ubicación: Mi Valle del Cauca... Colombia!!!
Posts: 1.120
Poder: 19
felipe88 Va por buen camino
Cita:
Empezado por Carmelo Cash Ver Mensaje
pero el tema es cómo me entero que se actualizó la BD sin estar preguntado constantemente?.
¿Pero como no lo vas a saber?, obviamente tu creas el post, entonces usa el after insert por ejemplo.
__________________
Web
Responder Con Cita
  #5  
Antiguo 25-08-2008
Avatar de Carmelo Cash
Carmelo Cash Carmelo Cash is offline
Miembro
 
Registrado: jul 2003
Ubicación: Buenos Aires
Posts: 261
Poder: 21
Carmelo Cash Va por buen camino
Gracias Felipe.

Es que en primer lugar nunca uso un post, ya que las tablas las actualizo todas con consultas SQL

Código Delphi [-]
DateBase.StarTransaction;
Q_Insert.ExecSQL;
DateBase.Commit;

En segundo lugar es que si en esta terminal modifico o agrego en una tabla, el tema es que dispare el proceso de actualización en las otras terminales.
Responder Con Cita
  #6  
Antiguo 25-08-2008
Avatar de felipe88
[felipe88] felipe88 is offline
Miembro Premium
 
Registrado: may 2007
Ubicación: Mi Valle del Cauca... Colombia!!!
Posts: 1.120
Poder: 19
felipe88 Va por buen camino
Cita:
Empezado por Carmelo Cash Ver Mensaje
Gracias Felipe.

Es que en primer lugar nunca uso un post, ya que las tablas las actualizo todas con consultas SQL

Código Delphi [-]
DateBase.StarTransaction;
Q_Insert.ExecSQL;
DateBase.Commit;

En segundo lugar es que si en esta terminal modifico o agrego en una tabla, el tema es que dispare el proceso de actualización en las otras terminales.
Bueno ya te entiendo, pero si me gustaria saber algo ¿Como le pasas las terminales a los combo? ... porque si lo traes de una consulta...
__________________
Web
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
Sobreescribir método Paint y saber coordenadas a refrescar Lord Delfos Gráficos 3 05-03-2008 13:48:28
Como Usar los COMBOBOX eddg Varios 5 24-09-2007 23:32:54
Refrescar Combobox Coco_jac PHP 13 29-10-2006 16:18:01
problemas para refrescar ElDioni Varios 1 11-07-2005 14:44:11
Metodo para borrar directorio VolaRe Varios 4 25-07-2004 16:29:52


La franja horaria es GMT +2. Ahora son las 03:47:32.


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