duvida

19/02/2009

quando tento executar esse select aki with deasy.cdsnota do   //processa o registro compelementares do sintegra
  begin
   Close;      CommandText:='SELECT * from nota where DATAEMISSAO BETWEEN :datahora_ini AND :datahora_fim  and(';
   CommandText:='(modelo = ''01'') OR';
   CommandText:='(modelo = ''1A'') OR';
   CommandText:='(modelo = ''03'') OR';
   CommandText:='(modelo = ''06'') OR';
   CommandText:='(modelo = ''55'') OR';
   CommandText:='(modelo = ''22''))';
   CommandText:='order BY dataemissao';
   params.ParamByName('datahora_ini').asdatetime:= datahora_inicial;
   params.parambyname('datahora_fim').asdatetime:= datahora_final;   Open;
  end;     ele me retorna que o parameter not found sendo que eu faço isso usando o ibquery e funciona normalmente o que pode ser?
Paulo Silva

Paulo Silva

Curtidas 0

Respostas

Paulo Silva

Paulo Silva

19/02/2009

estou usando o client dataset mais ele n encontra o parametro
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

19/02/2009

Olá Paulo, Segue abaixo uma solução.
Var  Vsql : String; //criada, pois a propriedade Commandtext, do clientdataset ela é o tipo String, então o que você estava fazendo, toda hora ele iria substituir a string do CommandText.
BeginvSql :=' SELECT * from nota
         ' where DATAEMISSAO BETWEEN :datahora_ini AND :datahora_fim  and('; '+
         ' (modelo = ''01'') OR '+
         ' (modelo = ''1A'') OR '+
         ' (modelo = ''03'') OR '+
         ' (modelo = ''06'') OR '+
         ' (modelo = ''55'') OR '+
         ' (modelo = ''22''))    '+
         ' order BY dataemissao ';
with deasy.cdsnota do   //processa o registro compelementares do sintegra
  begin   FetchParams; //Função para poder pegar o os parametros.
   Close;
   CommandText:= vSql;
   params.ParamByName('datahora_ini').asdatetime:= datahora_inicial;
   params.parambyname('datahora_fim').asdatetime:= datahora_final;   Open;
  end;Att,Wesley Y
GOSTEI 0
Paulo Silva

Paulo Silva

19/02/2009

function tgerador.sregistro50(var Err_Msg: string; var qnt_ok, qnt_erro: integer): boolean;
 var sql:string;
var
 TempStr, num_nf: string;  begin
 Result := True; with deasy.cdsnota do   //processa o registro compelementares do sintegra
 begin
    Close;
     FetchParams;
     sql:='SELECT * from nota where (DATAEMISSAO BETWEEN :datahora_ini AND :datahora_fim)  and('+
        '(modelo = ''01'') OR'+
        '(modelo = ''1A'') OR'+
        '(modelo = ''03'') OR'+
        '(modelo = ''06'') OR'+
        '(modelo = ''55'') OR'+
        '(modelo = ''22''))'+
        'order BY dataemissao';
          CommandText:=sql;
          Params.ParamByName('datahora_ini').asdatetime:=DataHora_Inicial;
          params.ParamByName('datahora_fim').asdatetime:=DataHora_Final;
          Open;
          end; no value for parameter datahora_ini fika dando isso omg em que problema kra O.o no ibquery funcionava perfeitamente DataHora_Inicial := startofthemonth(Datetimepicker1.DateTime);
 DataHora_Final   := EndOfTheMonth(Datetimepicker1.DateTime);
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

19/02/2009

Olá Paulo, faz o seguinte.

 Bota o teu SQL, na query. feito isso, vai na propriedade Params da query, la vão ser listados todos os parametros configura o tipo, de cada pametro, e diz que paramtype é "ptInput".

Feito isso, no seu clientdataset, botão direito e va em  FetchParams, depois rode o teu sistema com

with deasy.cdsnota do   //processa o registro compelementares do sintegra
 begin
    Close;
    Params.ParamByName('datahora_ini').asdatetime:=DataHora_Inicial;
    params.ParamByName('datahora_fim').asdatetime:=DataHora_Final;
    Open;
 end;

e pronto, assim irá funcionar.

Att,

Wesley Y
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

19/02/2009

Olá Paulo, estamos fechando este chamado pois ele é continuação outro que ja concluimos.


att,


Wesley Y
GOSTEI 0
POSTAR