Re: [firebase-br] Parâmetros em SQL
    José Filho (UOL) 
    jfilho.bg em uol.com.br
       
    Qui Ago 17 08:47:13 -03 2006
    
    
  
Respondendo às observações de todos...
Se o Jorge Luis observar o código que eu enviei abaixo de todo o texto vai perceber que eu chamei o FetchParams no ClientDataSet.
Quanto à observação do Luis Asensio, acredito que se eu estiver chamando os parâmetros para o ClientDataSet através do FetchParams, não há nenhum problema em eu passar os parâmetros para ele.
Segue abaixo o código que estou usando:
1º) Chamo este código no TSQLQuery:
  with Dm.qryConsulta do
    begin
      Close;
      SQL.Clear;
      SQL.Add('SELECT * FROM USUPERMISSOES');
      SQL.Add('WHERE (PER_USUARIO = :PUSUARIO)');
      SQL.Add('AND (PER_PROGRAMA = :PPROGRAMA)');
      if Operacao = 'M' then
        SQL.Add('AND (PER_MENU = ''S'')');
      if Operacao = 'I' then
        SQL.Add('AND (PER_INCLUI = ''S'')');
      if Operacao = 'A' then
        SQL.Add('AND (PER_ALTERA = ''S'')');
      if Operacao = 'E' then
        SQL.Add('AND (PER_EXCLUI = ''S'')');
      if Operacao = 'C' then
        SQL.Add('AND (PER_CONSULTA = ''S'')');
      if Operacao = 'R' then
        SQL.Add('AND (PER_RELATORIO = ''S'')');
    end;
  with Dm.cdsConsulta do
    begin
      Close;
      Params.Clear;
      FetchParams;
      Params.ParamByName('PUSUARIO').AsString := Usuario;
      Params.ParamByName('PPROGRAMA').AsString := Programa;
      Open;
    end;
2º) Depois chamo este outro:
with qryConsulta.SQL do
  begin
    Add('SELECT TDOC_CODIGO, UPPER(TDOC_DESCRICAO) AS TDOC_DESCRICAO FROM TIPODOCTO');
    Add('WHERE UPPER(TDOC_DESCRICAO) LIKE :PCONSULTA');
    Add('ORDER BY TDOC_DESCRICAO');
  end;
with cdsConsulta do
  begin
    Close;
    FieldDefs.Clear;
    Params.Clear; {Limpo os parâmetros antes}
    FetchParams; {Para depois chamá-los novamente}
    Params.ParamByName('PCONSULTA').AsString := Parametro1;
    if vFormConsulta = 'CONTASBANCARIAS' then
      Params.ParamByName('PBANCO').AsInteger := Dm.cdsBancosBCO_CODIGO.AsInteger;
    Open;
    if vFormConsulta = 'CONTASMOVIMENTO' then
      Fields[0].EditMask := '9.99.99.999;0;_';
  end;
3º) Quando vou chamar o 1º novamente o programa dá um erro informando que o parâmetros PUSUARIO não existe.
Espero que tenha ficado mais claro agora.
[ ]'s
José Filho
Barra do Garças-MT
----- Original Message ----- 
From: "Jeudí Prando" <jeudiprando em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, August 16, 2006 5:09 PM
Subject: Re: [firebase-br] Parâmetros em SQL
talvez os parametros estejam mapiados...
delete os paramatros mapiados e tente novamente...
da um ctrl + c e ctrl + v aqui no email e poste para gente ... para ter 
sertreza do que pode ser
boa sorte
    
    
Mais detalhes sobre a lista de discussão lista