PDA

Ver la Versión Completa : Como actualizar una tabla cada cierto tiempo


leodenis784
31-07-2006, 20:42:26
Hola, soy nuevo en el foro y aunque tengo un tiempo programando en delphi, no soy muy experto, espero puedan ayudarme.

Tengo una tabla en una maquina (servidor) en la cual los usuarios (clientes) introducen datos desde sus ordenadores, deseo saber como hago para que la tabla se actualice cada cierto tiempo, intente poner esto en el evento OnTimer...


Código Delphi [-] (http://www.clubdelphi.com/foros/#)
procedure TDataModule1.Timer1Timer(Sender: TObject);
begin
QueryRequerimientos.Refresh();
end;





Pero me da el siguiente error...

'Table does not support this operation because it is not uniquely indexed'.

Un saludo y espero puedan ayudarme.

Lepe
31-07-2006, 22:21:45
Pues Bienvenido al foro leodenis784

Siempre que hables de bases de datos, es mejor que indiques cual usas, ya que no sabemos la respuestas para todos los que existen. En este caso concreto "parece que no hace falta".

Según el texto, no tienes un índice único sobre las filas que estas pidiendo y no deja realizar la operación. Al ser un Query, podrías hacer el equivalente a un Refresh:

QueryRequerimientos.Close;
QueryRequerimientos.Open;


El único inconveniente que le veo es que al abrir de nuevo se irá al primer registro de la consulta. Si quieres que se posicione en el mismo registro donde estaba, puedes consultar la ayuda sobre BookMarks.

Saludos

PepeLolo
01-08-2006, 12:51:40
Yo te pregunto, ¿que sentido tiene refrescar los datos cada cierto tiempo?, no es preferible poner un botón y que sea el usuario el que pinche este para el refresco.

Lepe
01-08-2006, 13:19:53
Normalmente.... No (desde el punto de vista de los usuarios). Si tienen una rejilla de datos con un listado de facturas y un usuario crea una factura, los demás usuarios quieren ver esa factura en su pantalla... sin tocar ningún botón.

En casos de usar un SGBD (Firebird, interbase, sql server) puedes usar los EventAlerter, son mensajes que se lanzan desde la propia base de datos (en el servidor) a todos los ordenadores clientes. El problema puede ser el tráfico de red, ya que si hay 1 persona creando facturas, estas pidiendo que los 20 ordenadores de la red actualicen su listado en pantalla.

Al usar Paradox u otras tablas de escritorio, no queda más remedio que usar un Timer.

Saludos

leodenis784
01-08-2006, 13:58:38
Gracias por tu Ayuda Lepe, hice lo que me dijiste y funciono perfectamente.

PepeLolo, necesito que el query o la tabla se actualice automaticamente, porque estoy desarrollando un sistema de Soporte Tecnico, donde tengo un programa cliente en el cual los Usuarios Solicitan los requerimientos de Soporte Tecnico, ese requerimiento se almacena en una tabla que tengo en Sql Server en un Servidor, entonces necesito que se actualice cada cierto tiempo para ir viendo los requerimientos por los usuarios y no por un Boton, pues el Boton seria muy tedioso en este caso.

Gracias y un Saludo.-