Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-10-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.052
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Es difícil ayudarte porque no has explicado lo que estás haciendo, de cómo obtienes los datos, cómo los presentas, etc. ni lo que quiere decir para tí "tiempo real".

Si lo que quieres es un gráfico se esté actualizando según los datos que se introducen en una base de datos, entonces NO lo hagas en tiempo real porque estarás saturando la red y el servidor con constantes "selects".
Hay otras formas de hacerlo, pero antes debes explicar qué estás haciendo, qué quiéres hacer, etc. exactamente.
Responder Con Cita
  #2  
Antiguo 20-10-2011
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 14
Diego827 Va por buen camino
Hola amigos.

Gracias por sus respuestas! sabia que me iban a ayudar (de hecho siempre recibo ayuda de este club!).

Ok, estimado Casimirio; explico el problema con más detalle.

Cita:
Empezado por Casimiro Notevi Ver Mensaje
no has explicado lo que estás haciendo.
Es que no lo he hecho... Quisiera hacerlo pero no me sale ; lo que de igual forma significaria lo estoy intentando hacer.

Como dije antes: "Quisiera que un DBChart se actualizara en tiempo real; este presenta datos de una base de datos Interbase. Los componentes utilizados son Interbase o bien IBX como le llaman algunos". Añadiría: lo que trato de hacer es una ventana con un DBChart; el cual muestra datos de un campo en una base de datos InterBase SMP 2009. Si se ingresaran datos inmediatamente que cambiara el DBCHart, algo asi como si este "pendiente de cambios" y actualizarce en cuanto sucedan. Esto, si fuera posible.

Cita:
Empezado por Casimiro Notevi Ver Mensaje
de cómo obtienes los datos
Los obtengo por componentes IBX, como dije: "Los componentes utilizados son Interbase o bien IBX como le llaman algunos."; pero cabería añadir: Para conectarme a la base un TIBDataBase, un IBTransaction... lo que se utiliza normalmente y por supuesto el IBDataSet.

Cita:
Empezado por Casimiro Notevi Ver Mensaje
cómo los presentas
Los presento en un DBChart, como dije: "Quisiera que un DBChart se actualizara en..."; no utilizo ningun DBGrid ni nada parecido, es una ventana simple con un DBChart. Lo que sucede es que no se como hacer que el Componente IBDataSet se de cuenta que la base de datos ha tenido una modificacion o algun cambio y por lo tanto volver a consultar y obtener los nuevos datos.

Cita:
Empezado por Casimiro Notevi Ver Mensaje
ni lo que quiere decir para tí "tiempo real
Para mi tiempo real (y para Wikipedia y otras Web) es algo como: un sistema que esta pendiente de lo que suceda y que presenta datos del ahora; por ejemplo si se ve la memoria de acceso aleatorio consumida de tu PC en este momento el dato es de tiempo real (no de ayer en el administrador de tareas).

Resumiendo :

Un grafico DBChart (digamos que de linea) que este mostrando los datos actuales que se presentan en la base de datos (por supuesto especificamente de un campo) y que al cambiar estos datos (ya sea una edicion o un insert) este grafico se actualics. No se si exista alguna funcion que detecte cambios en la base de datos y que al cambiar inmediatamente se actualice. Estoy de acuerdo con lo que mencionas estimado Casimiro; si hago sentencias SELECT cada cierto tiempo con un Timer estaria hasta cierto punto siendo desconsiderado con los recursos.

Estimado maeyanes; lo pruebo y posteo, de igual forma voy a probar lo que me dices estimado mightydragonlor; voy a intenarlo.

Saludos a todos y gracias por responder.
Responder Con Cita
  #3  
Antiguo 20-10-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.052
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Entonces te viene mejor los eventos, que cuando se actualice ese campo (o la tabla) salta el evento oportuno y tú te encargarías de presentar la gráfica con los nuevos datos, así sólo tendrías que hacerlo cuando realmente se han modificado los datos.
Creo que en algún hilo había un ejemplo que te puede venir perfecto, voy a ver si lo encuentro, aunque tampoco es muy complejo.

Edito: busca por post_event, también por el componente indicado por mightydragonlor, para manejarlo desde delphi.

Aquí hay un hilo que te puede servir.

Última edición por Casimiro Notevi fecha: 20-10-2011 a las 00:58:08.
Responder Con Cita
  #4  
Antiguo 20-10-2011
Avatar de RONPABLO
[RONPABLO] RONPABLO is offline
Miembro Premium
 
Registrado: oct 2004
Posts: 1.514
Poder: 21
RONPABLO Va por buen camino
Como te han comentado usa los eventos, es un componente IBX, se llama IBEvente...

Cita:
Un grafico DBChart (digamos que de linea) que este mostrando los datos actuales que se presentan en la base de datos (por supuesto especificamente de un campo) y que al cambiar estos datos (ya sea una edicion o un insert)
1. Ok en la base de datos debe crear un trigger en la tabla que tiene dicho campo, es importante determinar que es lo que esta graficando, los cambios realizados por un update, inserciones nuevas con un Insert o información que se borra con un Delete, así pues al crear el trigger ponemos que se active en una de estas opciones o en todas o en las 2 que necesite.

2. El código del trigger lucirá algo así:

Código SQL [-]

SET TERM ^^ ;
CREATE TRIGGER NombreDelTrigger FOR NombreTabla ACTIVE AFTER INSERT POSITION 0 AS
begin
  /* code */
  POST_EVENT 'NuevoRegistro';   // Este es el nombre que yo le di al evento, pero puede ser el que más se adapte o el que quiera poner
end ^^
SET TERM ; ^^

3. Ya volviendo al código del programa y dejando a un lado la base de datos vamos al componete IBEvent, en él usamos la propiedad registrar evento y ahí colocamos el nombre del evento creado en el trigger (el que yo llame 'NUevoRegistro').

4. Acá queda faltando programar el evento del componente IBEvent (suena redundante, y puede ser confuso, pero este no es una propiedad si no un evento, como el onMouseUp o el OnClick), no recuerdo como se llama este evento, pero en el solo necesita poner algo así como esto:

Código Delphi [-]
    DataSet.Refresh;

Nota: Acá todo lo digo de memoria, así que puede haber muchos errores, pero es la idea de como funciona.
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H"
Responder Con Cita
  #5  
Antiguo 20-10-2011
Avatar de Diego827
Diego827 Diego827 is offline
Miembro
NULL
 
Registrado: oct 2010
Posts: 157
Poder: 14
Diego827 Va por buen camino
Excelente amigos

Gracias amigos en cuanto lo realice posteo muy agradecido por su tiempo!

Saludos a todos.
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
cláusula Order by impide actualizar en tiempo real? anghell77 SQL 4 30-10-2006 05:11:39
Video en tiempo real Fitoperu Internet 1 25-08-2005 21:47:07
Videos en tiempo real Albano Internet 4 07-06-2005 22:51:56
Buen Pc en Tiempo Real Rabata Varios 0 19-11-2003 16:48:01
Actualizar En Tiempo Real GIVO SQL 3 21-07-2003 19:10:31


La franja horaria es GMT +2. Ahora son las 06:16:56.


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