Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 10-04-2007
aprendiz2 aprendiz2 is offline
Miembro
 
Registrado: dic 2006
Posts: 70
Poder: 20
aprendiz2 Va por buen camino
Si se puede !

Cita:
Empezado por francisco260184
Hola, soy nuevo en esto del manejo de Delphi, antes programaba todo en VB.Net, pero por razones laborales tuve que migrar.
Mi pregunta es ¿Como se puede hacer un Query de otro Query?

Por ej.
SELECT q.campo1, q.campo2
FROM Query1 AS q;

Se puede o estoy totalmente perdido??
Gracias....
Hola !. Si se puede generar un query basado en los resultados del query anterior.... He encontrado 2 formas de hacerlo:

METODO "A"

1 - Desarrolla la instruccion SQL para el primer Query. Una vez que el primer Query este funcionando bien, guarda el texto de esa SQL en cualquier archivo de texto.

Ejemplo del Query1
Query1
SELECT C1,C2,C3
FROM Tabla1
... otras clausulas siguen...

( Guarda este texto en un archivo de texto simple... puedes usar el mismo editor de Delphi para guardarlo. Ponle el nombre que quieras, con la extension que quieras. Asumimos lo guardaste como "PrimerQuery.txt" )

2 - En el segundo Query, puedes escribir:

SELECT C1, C2, C3
FROM "PrimerQuery.txt"
... otras clausulas normales aqui...


Asi puedes "encadenar" un query con otro.

Puedes usar en el FROM algo asi como
FROM ":WORK:PrimerQuery.txt"

donde :WORK: es el alias que indica la ruta...
o puedes escribir la ruta normalmente: "C:\rutaX\nombre.abc"

Puedes usar la extension que desees, no tiene que ser .txt

OJO: Ya no es necesario llegar a ejecutar el primer Query !!!!
Con solo ejecutar el segundo query, basado en el texto que se guardo en el .txt, es suficiente !!!. ( Se desarrolla el primer query, solo para llegar a probar que funcione bien el texto que se guardara en el .txt )

-------------------

METODO "B"

1 - Desarrolla el primer Query, y coloca un objeto TBatchMove, ademas de un objeto TTable adicional ( digamos Table1 ).

En el TTable selecciona el DataBase ( alias / ruta ) y el nombre de un archivo en el TableName ( aunque no exista la tabla... eso no importa ).

Deja la propiedad Active=false en el Table1

En el TBatchMove,

a) indica que la tabla de salida (prop. Destination) es el Table1 del paso anterior,
b) Cambia la propiedad Mode para que sea batCopy .
c) Cambia la propiedad Source al Query1.

Una vez que hayas ejecutado el Query, echas a andar el BatchMove1 asi:

Query1.close;
Query1.open;
BatchMove1.Execute;

Podras verificar que ahora existe un archivo fisico ( real ) en el disco duro con los resultados del Query1. Tendra el nombre que asignaste en el Table1, en la carpeta referida en el DataBase del Table1.

Ojo: Si esa tabla ya existia en el disco duro, se perdera el contenido anterior.

Puedes cambiar el modo del TBatchMove para obtener diferentes procesos ( Append, Add-Append, etc... ).

Espero te sirva esto.. !!!!
Responder Con Cita
 



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
Como hacer referencia a un query dentro de otro query? JuanBCT SQL 2 05-09-2006 18:35:25
Otro metodo de insercion que sea mejor hacerlo via query ilichhernandez Conexión con bases de datos 2 01-07-2006 12:26:06
Como hacer un Query con dbf y Sql Leomar SQL 0 02-02-2005 14:28:52
Copiar los resultados de un Query a otro CORBATIN Conexión con bases de datos 2 13-01-2005 16:32:34
Hacer preguntas en un query IVAND SQL 2 28-11-2003 23:07:18


La franja horaria es GMT +2. Ahora son las 17:23:33.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi