Filtro entre datas e operador

Delphi

01/09/2013

Caros colegas, estou com um problema com o meu terceiro parametro da busca gostaria de saber o que poderia estar de errado com o meu código.

      with TClientDataset(Dts_PescCaixa.DataSet) do
        begin
        Close;
        CommandText := 'select * from CAIXA where DATA_CAD between :de and :ate';
        CommandText := 'and (OPERADOR like :OPERADOR)';
        Params[0].AsDate := DataIni;
        Params[1].AsDate := DataFin;
        Params[2].AsInteger := TClientDataset(Dts_LancamentoBusca.DataSet).FieldByName('ID_LANCAMENTO').AsInteger;
        Open;
      end;
    end;


Como podem ver são 3 parametros 2 recebendo datas inicia e finais e um outro e receber um valor inteiro para definir o tipo de operador..

EX :

OP1 = CAIXA 01 - CODIGO 1
OP2 = ADMINISTRAÇÂO - CODIGO 2

antes só tinha a opção de datas que fuciona perfeitamente, implementei a linha do OPERADOR bem como seu parametro..más dá erro.
más o código só recebe o numero do ID_LANCAMENTO qué é justamento o código de cada operador. está dando list of index out.. se alguém puder dá uma força..desde já agradeço..
Gilmar Moraes

Gilmar Moraes

Curtidas 0

Respostas

Gilmar Moraes

Gilmar Moraes

01/09/2013

Depois de fazer algumas pesquisas achei a solução..vlw e t+

procedure TFCadCaixa.SpeedButton1Click(Sender: TObject);
Var
DataIni,DataFin: TDate;
begin
  DataIni := EdiDataIni.Date;
  DataFin := EdiDataFinal.date;
    if DataFin < DataIni Then
      begin
      ShowMessage('Intervalo de datas inválido, a data inicial é maior que a data final!');
    end
    else
    begin
      with TClientDataset(Dts_PescCaixa.DataSet) do
        begin
        Close;
        CommandText := 'select * from CAIXA where DATA_CAD between :de and :ate and (OPERADOR Like :OPERADOR)';
        Params[0].AsDate := DataIni;
        Params[1].AsDate := DataFin;
        Params[2].AsInteger := TClientDataset(Dts_LancamentoBusca.DataSet).FieldByName('ID_LANCAMENTO').AsInteger;
        Open;
      end;
    end;
end;

GOSTEI 0
POSTAR