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 08-10-2003
danytorres danytorres is offline
Miembro
 
Registrado: may 2003
Ubicación: Venezuela. Edo Carabobo
Posts: 361
Poder: 22
danytorres Va por buen camino
Post Como formar esta consulta?

Hola a todos los del foro? como empesar es un poco complicado, estoy trabajando en Sql, en el cual realizo una consulta estandar que es la siguiente:

Code:
____________________________________________________
SELECT Guia.Codigo, Paquete.CodigoPaquete, Paquete.EstadoPaquete, Paquete.FechaHora,Direccion.Direccion, Ciudad.NombreCiudad

FROM Ciudad INNER JOIN
Direccion ON Ciudad.IdCiudad = Direccion.IdCiudad INNER JOIN
DireccionConsignatario ON Direccion.IdDireccion = DireccionConsignatario.IdDireccion INNER JOIN
Guia INNER JOIN
Paquete ON Guia.Codigo = Paquete.CodigoGuia INNER JOIN
Consignatario ON Guia.IdDestinatario = Consignatario.IdConsignatario INNER JOIN
Ente ON Consignatario.IdConsignatario = Ente. IdEnte ON DireccionConsignatario.IdConsignatario = Consignatario.IdConsignatario

WHERE (Paquete.CodigoPaquete IN ('72', '73', '74'))
____________________________________________________

cuando digo estandar es que no existe seleccion o parametro, para la seleccion utilizo el componente RxCheckListBox1 el cual le paso los datos que posee una tabla, esos datos son el 72, 73, 74 hasta el ultimo registro de la tabla, yo quiero que el usuario seleccione o marque con un check en RxCheckListBox1 el 72 o 73 o 74 el que el desea, la pregunta es como armo el WHERE (Paquete.CodigoPaquete IN ('72', '73', '74')) ?

el codigo que utilizo es el siguiente :

Code:
____________________________________________________

RxCheckListBox1.Items.Strings[RxCheckListBox1.Items.ValueFromIndex];
___________________________________________________

pero como hago para poner el parentesis el asento y luego la como, haa y el hultimo parametro no lleva como? agradesco la ayuda que me puedan dar? Gracias


____________________________
Un saludo a todos...
Responder Con Cita
  #2  
Antiguo 08-10-2003
Viet Viet is offline
Miembro
 
Registrado: jul 2003
Ubicación: Argentina - Mar del Plata
Posts: 252
Poder: 21
Viet Va por buen camino
Hola

Se me ocurre que puedes hacer


Código:
  

   Var 

          aux: String;

   begin
         
Aux :=' SELECT Guia.Codigo, Paquete.CodigoPaquete, Paquete.EstadoPaquete, Paquete.FechaHora,Direccion.Direccion, Ciudad.NombreCiudad
FROM Ciudad INNER JOIN
Direccion ON Ciudad.IdCiudad = Direccion.IdCiudad INNER JOIN
DireccionConsignatario ON Direccion.IdDireccion = DireccionConsignatario.IdDireccion INNER JOIN
Guia INNER JOIN
Paquete ON Guia.Codigo = Paquete.CodigoGuia INNER JOIN
Consignatario ON Guia.IdDestinatario = Consignatario.IdConsignatario INNER JOIN
Ente ON Consignatario.IdConsignatario = Ente. IdEnte ON DireccionConsignatario.IdConsignatario = Consignatario.IdConsignatario
WHERE (Paquete.CodigoPaquete IN (';

i:= 0;
While  i< RxCheckListBox1.Items.Count do 
  begin 
         if RxCheckListBox1.checked[i] then
           aux:= aux +'"'+  RxCheckListBox1.Items.String[i]+'",' ;
       inc(i);
  end;
 
  aux := Copy(aux,1,length(aux) -1); // saco el ultimo "
  aux:= aux +'))';


     
   End;
Suerte
__________________
Marín Ignacio Borthiry (Viet) - "El hombre arriesga su vida cada vez que elije y eso es lo que lo hace libre" ;)
Responder Con Cita
  #3  
Antiguo 08-10-2003
danytorres danytorres is offline
Miembro
 
Registrado: may 2003
Ubicación: Venezuela. Edo Carabobo
Posts: 361
Poder: 22
danytorres Va por buen camino
Smile

Gracias por responder Viet. Funciona bien pero tengo un sierto detalle cuando le paso este string al query lo hace bien la primera vez pero en la segunda no hace nada nose como resetear el query o actualizarlo el codigo que uso es el siguiente:

Code
___________________________________________________
procedure TEtiqueta.BitBtn5Click(Sender: TObject);
var
aux: String;
I: integer;
begin
Datamodule2.QSeleccionEtiqueta.


Datamodule2.QSeleccionEtiqueta.Close;

Datamodule2.QSeleccionEtiqueta.SQL.Add('SELECT Guia.Codigo, Paquete.CodigoPaquete, Paquete.EstadoPaquete, Paquete.CodigoGuia,Paquete.FechaHora, Paquete.NumeroRelacion,Paquete.UbicacionPaquete, Guia.TotalPeso, Guia.OficinaOrigen, Guia.CiudadOrigen,');
Datamodule2.QSeleccionEtiqueta.SQL.Add('Guia.CiudadDestino, Guia.OficinaDestino, Ente.NombreEnte,Ente.Celular, Ente.Email, Direccion.Direccion, Ciudad.NombreCiudad');
Datamodule2.QSeleccionEtiqueta.SQL.Add('FROM Ciudad INNER JOIN Direccion ON Ciudad.IdCiudad = Direccion.IdCiudad INNER JOIN DireccionConsignatario ON Direccion.IdDireccion = DireccionConsignatario.IdDireccion INNER JOIN');
Datamodule2.QSeleccionEtiqueta.SQL.Add('Guia INNER JOIN Paquete ON Guia.Codigo = Paquete.CodigoGuia INNER JOIN');
Datamodule2.QSeleccionEtiqueta.SQL.Add('Consignatario ON Guia.IdDestinatario = Consignatario.IdConsignatario INNER JOIN');
Datamodule2.QSeleccionEtiqueta.SQL.Add('Ente ON Consignatario.IdConsignatario = Ente.IdEnte ON');
Datamodule2.QSeleccionEtiqueta.SQL.Add('DireccionConsignatario.IdConsignatario = Consignatario.IdConsignatario');
Datamodule2.QSeleccionEtiqueta.SQL.Add('WHERE (Paquete.CodigoPaquete IN( ');

i:= 0;
While i< RxCheckListBox1.Items.Count do
begin
if RxCheckListBox1.checked[i] then
begin
aux:= aux +' '+ RxCheckListBox1.Items.Strings[i] + ' ,' ;
end;
inc(i);
end;

aux := Copy(aux,1,length(aux) -1); // saco el ultimo
aux:= aux + '))';

Datamodule2.QSeleccionEtiqueta.SQL.Add(aux);
Datamodule2.QSeleccionEtiqueta.Open;
Datamodule2.QSeleccionEtiqueta.Refresh;

end;
________________________________________________

la primera si lo hace pero cuando hago nuevamente Click en el boton no hace nada que puede estar pasando. agradesco su ayuda?. Gracias.


___________________________________
Un saludo para todos....
Responder Con Cita
  #4  
Antiguo 08-10-2003
Viet Viet is offline
Miembro
 
Registrado: jul 2003
Ubicación: Argentina - Mar del Plata
Posts: 252
Poder: 21
Viet Va por buen camino
Dany

Para asignarle el SQL a la Query hace asi:

Código:
 
      Query1.Close;
      Query1.Sql.Text := 'select .........';
      Query1.Sql.add(aux);
      Query1.Open;
Suerte
__________________
Marín Ignacio Borthiry (Viet) - "El hombre arriesga su vida cada vez que elije y eso es lo que lo hace libre" ;)
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


La franja horaria es GMT +2. Ahora son las 04:28:41.


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