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