![]() |
Consultar en memoria
Hola amigos del club delphi gracias por sus valiosa colaboración, pero ahora tengo otra dificultad, tengo un procedimiento que realiza varias subconsultas y me retorna un resultado de la combinación de varias tablas, el problema que tengo es q no deseo realizar la consulta desde la base de datos cada vez q lo requiera, si no q deseo realizar la consulta una vez se corra el programa y luego en base a los resultado q se encuntran en memoria realizar los select q necesite pero en base a los resultados q ya consulte sin volver hasta la base de datos para economizar tiempo el problema es q no se como se puede realizar una consulta a un Query q solo se encuntra cargado en memoria. Si alguien me puede ayudar le agradeceria. Utilizao Firebird 2.0 y delphi 7.
Gracias |
Las RX (unos componentes) contienen uno que se llama RxMemoryData.
De todos modos, si abres una tabla con tu consulta y obtienes todo los datos, no deberás volver a lanzar la consulta cada vez. Muévete con Tabla.Next, Tabla.Prior (adelanta, atras) y Tabla.First, Tabla.Last (primero, último) Los datos estarán allí hasta que cierres la tabla. |
Puedes usar un ClientDataset y usar la propiedad Filter y Filtered.
Asi puedes recortar tu consulta en memoria a la hora de presentarla, usando condiciones que pondrias en "where". Saludos. |
PUEDES CREAR VISTAS DEFINENTO LA LOGICA DE TU COMANDO SQL, UNA VES CREADA ESTA VISTA, ESTA PUEDE SER UTILIZADA COMO UNA TABLA de tu BD..
ejemplo:
Podrias consultar en el caso a los clientes unicamente asi..
Y o tambine en el caso de relaciarlos con otro dato podria ser algo asi..
Esta es la finalidad de las VISTAS... simplificar los metodos de consulta.. |
Yo utilizaría TClientDataset, eso te facilitará tener ese bloque da datos en memoria con el código que tienes ahora sin toar nada; Sólo debes añadir ese componente a tu formulario (y conectarlo con tu Query) y una vez ejecutada la consulta cargará los datos a memoria.
A partir de ahí ya puedes cerrar el query y trabajar con esos datos. Lo que no podrás hacer son nuevas consultas SELECT como comentas; Para trabajar con esos datos, como te ha dicho podrás hacer recorrridos, filtros, ordenaciones, pero no SELECT. |
Cita:
Obtienes el resultado de la consulta de firebird y lo guardas en formato csv o xls en el disco duro del usuario. Una vez que generaste ambos archivos conectas ADO con estos origenes de datos y puedes ejecutar consultas sobre ellos. Como mencionan previamente. TClientDataset puede ser otra opción. Saludos |
La franja horaria es GMT +2. Ahora son las 08:41:37. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi