Ver Mensaje Individual
  #1  
Antiguo 28-12-2012
leofuentes21 leofuentes21 is offline
Miembro
NULL
 
Registrado: feb 2011
Ubicación: la ceiba, atlantida
Posts: 66
Reputación: 14
leofuentes21 Va por buen camino
problemas en consulta al pasar parametros

Hola amigos espero tenga un buen dia.
espero me puedan ayudar en lo siguiente.

tengo un problema con un filtro.

esta es una query donde busco unos folios segun los que encuentre va asignar la linea de codigo a la variable 'Busca' los folios que encuentra son 2 pero pueden ser mas por ejemplo encuentra 2 el IR y OV
esta me va bien
Código Delphi [-]
  with Q_fol do
  begin
    Active:=False;
    sql.Clear;
    sql.Add('SELECT DISTINCT FOLUSER FROM AGENFOL WHERE (CLV_AGN =:CLVE)');
    ParamByName('CLVE').AsInteger:=FrmOffices.qry1.fieldbyname('CLV_OFC').AsInteger;
    Active:=True;
  end;

  Q_fol.First; // me voy al primer registro el cual no interesa asignar porque se lo paso mas adelante
  Q_fol.Next;  // me voy al segundo este si porque es el que agrego en la variable 'Busca'
  while not Q_fol.Eof do
  begin
    busca:=busca+' OR (CVE_DOC LIKE :DOC ) AND (TIP_DOC = '+
        QUOTEDSTR('F')+') AND (STATUS <> '+QUOTEDSTR('C')+
        ') AND (FECHA_DOC >= :F1) AND (FECHA_DOC <= :F2)';
    Q_fol.Next;
  end;
hasta aqui todo bien ,pero el problema es en esta.La query donde hago el filtro y donde paso los parametros
Código Delphi [-]
  WITH  qry1 DO
  BEGIN
    Active:=False;
    SQL.Clear;
    SQL.Add('SELECT * FROM FACT01 WHERE  (CVE_DOC LIKE :DOC ) AND (TIP_DOC ='+
        QUOTEDSTR('F')+') AND (STATUS <> '+QUOTEDSTR('C')+
        ') AND (FECHA_DOC >= :F1) AND (FECHA_DOC <= :F2) '+BUSCA+' ');
    Q_fol.First;
    C:=0;
    Params[C].Text:=Trim('%'+Q_fol.FIELDBYNAME('FOLUSER').Text+'%');
    C:=C+1 ;
    Params[C].AsDate:=DateTimePicker1.DATE;
    C:=C+1 ;
    Params[C].AsDate:=DateTimePicker2.DATE;
    Q_fol.Next;
    while not Q_fol.Eof do
    begin
      C:=C+1 ;
      Params[C].Text:=Trim('%'+Q_fol.FIELDBYNAME('FOLUSER').Text+'%');
      C:=C+1 ;
      Params[C].AsDate:=DateTimePicker1.DATE;
      C:=C+1 ;
      Params[C].AsDate:=DateTimePicker2.DATE;
      C:=C+1;
      Q_fol.Next;
    end;
    Active:=True;
  end;

por algun motivo no se que estoy haciendo mal solo me muestra las documentos que empiesan con folio OV.
La misma consulta la he provado en el Sql express 2005 que es donde tengo la base de datos y me muestra bien los resultados solo es cuando utilizo el delphi en el dbgrid que no me esta mostrando bien la informacion.

por siento trabajo en Sql express 2005 y delphi 7
les agradeceria mucho su ayuda
saludos

Última edición por ecfisa fecha: 28-12-2012 a las 05:04:24. Razón: Etiquetas [delphi] [/delphi], identación
Responder Con Cita