Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-12-2008
Avatar de Vlady
Vlady Vlady is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
Vlady Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 16-12-2008
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
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.
Responder Con Cita
  #3  
Antiguo 16-12-2008
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.083
Poder: 18
juanelo Va por buen camino
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.
__________________
Ya tengo Firma!
Responder Con Cita
  #4  
Antiguo 16-12-2008
pcicom pcicom is offline
Miembro
 
Registrado: may 2003
Ubicación: MONTERREY MEXICO
Posts: 253
Poder: 21
pcicom Va por buen camino
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:

Código SQL [-]
   CREATE VIEW CLIENTES_CREDITO (CLIENTE, NOMBRE)
      AS
      SELECT CLIENTE,NOMBRE FROM CLIENTES WHERE TIPO='CREDITO';

Podrias consultar en el caso a los clientes unicamente asi..

Código SQL [-]
   SELECT * FROM CLIENTES_CREDITO;

Y o tambine en el caso de relaciarlos con otro dato podria ser algo asi..

Código SQL [-]
    SELECT  a.CLIENTE,a.NOMBRE,b.FACTURA,b.VALOR FROM FACTURAS b
        LEFT JOIN clientes_contado a ON a.CLIENTE=b.CLIENTE;

Esta es la finalidad de las VISTAS... simplificar los metodos de consulta..
__________________
Poco ha de saber el que no pregunta.. Yo por eso soy un pregunton
Responder Con Cita
  #5  
Antiguo 17-12-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 17-12-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Cita:
Empezado por Vlady Ver Mensaje
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
Pues, si tu deseas hacer consultas sobre el resultado de una consulta en particular te aconsejo uses ADO. El esquema sería el siguiente:

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
__________________
Conoce mi blog http://www.edgartec.com
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
dbgrid consultar ekstase MySQL 2 26-11-2007 05:32:41
Poblema al consultar!! magnu9 Conexión con bases de datos 3 08-11-2006 22:01:46
Consultar un archivo .xls mgiorno Tablas planas 0 11-06-2005 17:06:45
Consultar una query Eolo Firebird e Interbase 2 26-09-2003 16:35:22
Como consultar NickName Firebird e Interbase 4 17-05-2003 04:40:19


La franja horaria es GMT +2. Ahora son las 12:23:46.


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