RES: [firebase-br] Parâmetros em SQL
Jorge Luis Bublitz
bublitz em tre-mt.gov.br
Qui Ago 17 10:02:18 -03 2006
Desculpe, não tinha reparado o FetchParams.
Faça assim:
Tire o comando SQL do componente TSQLQuery e o coloque no ClientDataSet;
Apague os parâmetros e os campos no TSQLQuery;
No DataSetProvider, altere a propriedade poAllowCommandText para True
(dentro de Options);
Não defina os parâmetros no ClientDataSet;
Agora é só alterar o seu código.
[]s,
Jorge Luis Bublitz
Analista Desenvolvedor
"No que diz respeito ao empenho, ao compromisso,
ao esforço, à dedicação, não existe meio termo.
Ou você faz uma coisa bem feita ou não faz."
Ayrton Senna da Silva
-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de José Filho (UOL)
Enviada em: quinta-feira, 17 de agosto de 2006 07:47
Para: jeudiprando em gmail.com; FireBase
Assunto: Re: [firebase-br] Parâmetros em SQL
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
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa
--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.405 / Virus Database: 268.10.10/419 - Release Date: 8/15/aaaa
Mais detalhes sobre a lista de discussão lista