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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-04-2010
Avatar de tgsistemas
tgsistemas tgsistemas is offline
Miembro
 
Registrado: dic 2003
Ubicación: Barcelona
Posts: 149
Poder: 21
tgsistemas Va por buen camino
Seleccion multiple para montar query

Hola a tod@s,

estoy atascado dándole vueltas a este tema pero no tengo nada claro como solventarlo y que sea ágil, por lo que os pido ayuda nuevamente sobre ideas o procesos que se os ocurran....

En un grid (asociado a un ClientDataSet) tengo un campo temporal "seleccionado" para que el usuario escoja la tienda (1.200 registros) sobre los que lanzar una segunda qry que realiza cálculos, hasta aquí todo bien. El problema lo tengo a la hora de cómo montar el segundo qry en función de las tiendas que se hayan seleccionado.

Hasta ahora estaba pensando en recorrer el cdsTDAS y en función del campo "seleccionado" (boolean) ir guardando el codigo de la tienda para luego montar la qry con las tiendas seleccionadas, algo así :
Código Delphi [-]
procedure TFDlgSlccionMltple.BtnOkClick(Sender: TObject);
var
  Marca : TBookmark;
begin
  isqlselmult := '';
  with cdsTDAS do
  begin
    DisableControls;
    Marca := GetBookMark;
    try
      First;
      while not cdsTDAS.EOF do begin
        if FieldByName('tmp_select').AsBoolean then
        begin
          if (isqlselmult = EmptyStr) then
          begin
            isqlselmult := 'com = ' + cdsTDAS.fieldbyname('com').AsString + ' ';
          end else begin
            isqlselmult := isqlselmult + 'com = ' + cdsTDAS.fieldbyname('com').AsString + ', or ';
          end;
        end;
        Next;
      end;
    finally
      GoToBookmark(Marca);
      FreeBookmark(Marca);
      EnableControls;
    end;
  end;
end;

pero aquí tengo algunas dudas,
1.- se podría montar un query como el siguiente o habría limitaciones ?? :
Código SQL [-]
select campo1, campo2, campo3 from tbPrtesDia where (cdgotda = XXXX, or cdgotda= XXX1, or cdgotda=XXAX,..... )//etc, etc.... pueden ser 1200 cdgo!!!

2.- cómo puedo eliminar el último "', or '" de la qry que voy montando??


3.- no me parece la mejor consulta del mundo pero no se me ocurre o conozco otra forma de optimizarla.

no se si me he explicado correctamente, agradecería vuestra ayuda, se admiten propuestas

Saludos y Gracias
__________________
Toni | blog
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
seleccion multiple cyber_zero Varios 2 26-06-2008 17:22:33
Selección Múltiple de Items en un ListView Rolo Varios 6 31-08-2007 21:28:58
Selección multiple con TCheckBox Nelly Varios 1 09-08-2007 00:28:06
selección múltiple en dbgrid davidgaldo Conexión con bases de datos 2 16-04-2004 15:15:04


La franja horaria es GMT +2. Ahora son las 16:41:10.


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