![]() |
Adoquery sql server 2000
Saludos
Tengo un programa que recibe datos de manera continua desde un puerto serial y estoy creando la plataforma del usuario. He puesto un adoquery, datasource y adoconnection. He puesto un ttimer y en el evento ontimer he hecho un REQUERY. Mi problema es que necesito leer uno por uno los registros nuevos que llegan para generar los eventos dependiendo del tipo que sean. Ademas de que cada vez que hace un REQUERY este se va al comienzo del DBgrid. Si me pudieran dar alguna sugerencia, se los agradeceria. |
Cita:
No se si me explico. Ej. Si el último registro leído tiene ID=205, la siguiente consulta debería ser:
Si lees tres y el último ID es el 208, la siguiente:
Y así sucesivamente. Si dicionalmente necesitas tener un Grid con todos los registros, utiliza un Query diferente al del Grid y en el del Grid sí puedes hacer un Requery para obtener los nuevos y luego un Locate para posicionarte en el que te interese. |
Muchisimas gracias por tu tiempo y tu respuesta.
La idea me parece excelente. Tengo un campo autoincrementable que se llama entradadatos. Pense que en el evento onshow del form al enviar al query al ultimo registro podia tomar el valor del registro y asignarlo a la variable. ejemplo: Código:
DataModule2.ADOqprueba.Last; Código:
DataModule2.ADOqprueba.SQL.Clear; |
http://docs.google.com/View?docID=dj...vision=_latest
Esta es la imagen del grid de prueba que he puesto |
:(:(:(
![]() |
Cita:
|
lo que pasa es que me llegan muchas señales y algunas pueden llegar al mismo tiempo o en el mismo minuto. Necesito una forma de poder manejarlas una por una, sin que al llegar las nuevas se pierdan.
cuando hago el select, perfecto, me gusta mas que hacer el requery, ya que realmente lo que necesito es manejar los eventos nuevos y no traer todos los que estan en la base de datos todo el tiempo. pero no se si los bookmarks me sirvan para ello, o algun indice. Necesito alguna idea para trabajar. ![]() ![]() |
Imagenes
la de arriba es el programa que tengo funcionando de manera local, directo al puerto serial y donde tengo el problema que cuando quiero escribir una nota sobre una de las señales, si llega otra me pasa hacia esa.
La segunda imagen es del dbrid del query que puse en otra computadora para probar el funcionamiento en red. La idea es que veas como son las señales que llegan. Gracias por tu tiempo. |
cambie nombre de usuario
Ya que me parecio mas correcto, aclaro para evitar confusiones
|
OK.
¿Y ahora en qué punto estás? (lo siento pero me he perdido un poco...) Por un lado te llegan señales y por otro lado quieres ir procesándolas. El código o estrategia que comentamos más arriba, ¿Te funciona? ¿Puedes ir leyendo las nuevas señales? |
detalles
hola de nuevo
El metodo del select esta perfecto porque es menos pesado que el de requery -PROBLEMA - el select esta puesto en un timer. si llegan cinco seÑales al mismo tiempo, necesito poder trabajar con cada una de ellas y con las demas que van llegando. -PROBLEMA- despues que se hace el nuevo select se van las seÑales viejas aunque obviamente ellas estan en la base de datos del servidor. -PREGUNTA -Si recibo estos datos constantemente y necesito procesarlos uno por uno, cual seria el mejor metodo. 1.- crear una tabla o vista con el cual trabajaria que podria ir llenando conel select? 2.-marcar los datos nuevos como pendientes con algun campo en la tabla en el servidor y mantener un contador y luego recuperarlos con otro select para saber lo que esta pendiente e ir trabajando con ellas Espero haberme explicado bien. Ejemplo practico: suena una alarma en robo del cliente X y luego dos segundos mas tarde suena la del cliente Y en fuego, mientras proceso la del cliente X, si llegan otros datos se pierde la del cliente Y. -pero claro esos datos estan todos en la base de datos del servidor. |
Cita:
(1º) El qe se encarga de leer las señales y guardarlas en una tabla temporal. Sólo tiene que leer y guardar. Así con este proceso no pierdes tiempo de proceso. Sólo lee y guarda en la tabla. (2º) Otro proceso que se encarga de ir recuperando las señales guardadas en la tabla y las va procesando y eliminando. De esta forma, si llega un momento en que necesitas más potencia puedes optar por configurar varios consumidores. |
La franja horaria es GMT +2. Ahora son las 01:57:36. |
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