Ver Mensaje Individual
  #35  
Antiguo 27-01-2015
Catublipas Catublipas is offline
Miembro
NULL
 
Registrado: ene 2015
Posts: 55
Reputación: 10
Catublipas Va por buen camino
Con este ejemplo si que funciona, ha sido una prueba que quería hacer ya que con la variable asignada a un solo proyecto si que funciona :P, ademas superrapido.
Código SQL [-]
begin
  cProyectos:='';
  IBQuery1.Close;
  IBQuery1.Open;
  while not IBQuery1.Eof do
  begin
    cProyectos := cProyectos + IBQuery1.Fields[0].AsString + ',';
    IBQuery1.Next;
  end;
  cProyectos := Copy(cProyectos,0,Length(cProyectos)-1);
  cProyectos := '3132';   //Es una prueba, solo he asignado un proyecto
  IBQuery2.SQL.Text:='select * from FACTURAS where PROYECTOS in ('+ cProyectos +')';
  IBQuery2.Close;
  IBQuery2.Open;

Y este sería el código que debería funcionar:

Código SQL [-]
begin
  cProyectos:='';
  IBQuery1.Close;
  IBQuery1.Open;
  while not IBQuery1.Eof do
  begin
    cProyectos := cProyectos + IBQuery1.Fields[0].AsString + ',';
    IBQuery1.Next;
  end;
  cProyectos := Copy(cProyectos,0,Length(cProyectos)-1);
  IBQuery2.SQL.Text:='select * from FACTURAS where PROYECTOS in ('+ cProyectos +')';
  IBQuery2.Close;
  IBQuery2.Open;

La segunda al dejar la variable con los proyectos separados por ',' no muestra resultado, sin embargo la primera va clavada, muestra los resultados de ese proyecto.
Responder Con Cita