FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
¿ 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
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. |
#2
|
||||
|
||||
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 |
#3
|
||||
|
||||
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. |
#5
|
||||
|
||||
Gracias Felipe.
Es que en primer lugar nunca uso un post, ya que las tablas las actualizo todas con consultas SQL
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. |
#6
|
||||
|
||||
Cita:
__________________
Web |
#7
|
||||
|
||||
Saludos.
En Interbase/Firebird tenemos los Eventos de la BD y con este mecanismo nos podemos dar cuenta de cualquier cosa acción. En SQL Server desconozco si existe algo parecido pero es una idea de por donde empezar a buscar.
__________________
Gracias, Rolphy Reyes |
#8
|
||||
|
||||
Hola:
Gracias a ambos por responder: Le digo a Felipe que los combobox que uso son los "DBLookupCombobox" conectados a un
Con respecto a la propuesta hecha por Rolphi Reyes es la que me gustaría hacer, pero desconozco cómo capturar eventos en SQL Server 2005. Tal vez el título de este hilo debería haber sido ese. ¿Cómo capturar eventos en SQL Server 2005?. |
#9
|
||||
|
||||
Hola, para este caso, encontré estos articulos que espero te puedan ser de ayuda:
http://technet.microsoft.com/es-es/l.../ms190176.aspx http://technet.microsoft.com/es-es/l.../ms190378.aspx http://technet.microsoft.com/es-es/l.../ms187875.aspx
__________________
Web |
#10
|
||||
|
||||
Una solución
Esto se complica cada vez más, así que lo solucioné de la siguiente manera.
Voy a romper una de las premisas, (pero sólo una parte). Recuerdan que para actualizar el combobox había que hacer Pero...
Lo que hice fué crear una tabla con dos campos el nombre de cada tabla y la fecha de última modificación de ésa tabla, que es un campo tipo DateTime llamado "Ultima_modificacion". Entonces al abrir los formularios "Cargo" los "Combobox" y guardo la "Ultima_modificacion", Select Ultima_modificacion From Control where Tabla='Provincias' en una variable DateTime. Luego en el evento on ClicK y del Combobox Ejecuto nuevamente la consulta Select Ultima_modificacion From Control where Tabla='Provincias' y la comparo con la variable que guardé anteriormente. Si es distinta actualizo los combobox. Este método tiene tres ventajas: 1.- Genera muy poco tráfico de red, ya que sólo viaja la fecha de la última modificación. 2- La opción de guardar la fecha de última modificación en una tabla externa hace que lo que tiene que procesar el servidor sea mucho menor. 3.- Al gefe le gustó. Gracias a todos los que participaron y espero que esto le sirva a alguien. |
#12
|
||||
|
||||
Que pasa CHE!!!!
Que pasa CHE!!!!
Se pudrió todo !!! Se vienen los chinos a ofrecer chinas??? Avisen al administrador que hay un colado!!! |
#13
|
|||
|
|||
Cita:
Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney |
|
|
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 |
|