el código de arriba está mal, sorry por no depurarlo, el que funciona correctamente es :
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 := 'centro = ' + cdsTDAS.fieldbyname('com').AsString;
end else begin
isqlselmult := isqlselmult + ' or centro = ' + cdsTDAS.fieldbyname('com').AsString;
end;
end;
Next;
end;
finally
GoToBookmark(Marca);
FreeBookmark(Marca);
EnableControls;
end;
end;
end;
lanza la consulta correctamente y no tarda mucho la verdad es que me ha sorprendido....
las dudas 1 y 2 ya están resueltas
pero sigo teniendo la duda de si consideráis que es la mejor forma de hacerlo.
gracias y saludos