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.