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