Fórum SQL - parameter not found #296459
21/09/2005
0
Tenho:
1 sqlconnection
1 sqlquery
1 datasetprovider
1 cds
1 datasource
Já olhei no forum pessoas que tiveram o mesmo problema, porém aplicando as soluções indicadas não funciona.
BD: FIREBIRD1.5, dialect 3
(Há alguma incompatibilidade do dialect 3 ? )
DM.qTemp.close;
DM.qTemp.SQL.Clear;
DM.qTemp.Add(´SELECT * FROM tabela´);
DM.qTemp.Add(´WHERE altura =: p_altura´);
DM.qTemp.params.parseSql(DM.qTemp.SQL.Text,true);
DM.qTemp.ParamByName(´p_altura´).value:=´170´;
DM.qTemp.open;
Ocorre a msg: parameter ´p_altura´ not found
N1
Curtir tópico
+ 0Post mais votado
18/09/2013
[code:1:80fe894dc0]DM.qTemp.close;
DM.qTemp.SQL.Clear;
DM.qTemp.Add(´SELECT * FROM tabela WHERE altura = :p_altura´);
DM.qTemp.ParamByName(´p_altura´).AsInteger := 170;
DM.qTemp.open; [/code:1:80fe894dc0]
É só mudar no SQLDataSet acrescentar um Params antes de ParamByName:
DM.qTemp.ParamByName(p_altura).asinteger := 170; --> DM.qTemp.Params.ParamByName(p_altura).asinteger := 170;
Só fazer isso daí que funfa, tava dando esses pepinos comigo também mas achei essa solução por aí no fórum e deu certo.
Mobius One
Gostei + 1
Mais Posts
21/09/2005
Rjun
DM.qTemp.Add(´WHERE altura = :p_altura´);
Gostei + 0
21/09/2005
N1
Mesmo fazendo esta alteração continua o erro.
Gostei + 0
21/09/2005
Rjun
DM.qTemp.close; DM.qTemp.SQL.Clear; DM.qTemp.Add(´SELECT * FROM tabela WHERE altura = :p_altura´); DM.qTemp.ParamByName(´p_altura´).value := ´170´; DM.qTemp.open;
Gostei + 0
21/09/2005
Rjun
DM.qTemp.close; DM.qTemp.SQL.Clear; DM.qTemp.Add(´SELECT * FROM tabela WHERE altura = :p_altura´); DM.qTemp.ParamByName(´p_altura´).value := ´170´; DM.qTemp.open;
Gostei + 0
21/09/2005
Rjun
DM.qTemp.close; DM.qTemp.SQL.Clear; DM.qTemp.Add(´SELECT * FROM tabela WHERE altura = :p_altura´); DM.qTemp.ParamByName(´p_altura´).value := ´170´; DM.qTemp.open;
Gostei + 0
21/09/2005
N1
Gostei + 0
21/09/2005
Rjun
Gostei + 0
21/09/2005
N1
DM.qTemp.ParamByName(´p_altura´).value:=´170´;
Gostei + 0
22/09/2005
Isabelct
DM.qTemp.close; DM.qTemp.SQL.Clear; DM.qTemp.Add(´SELECT * FROM tabela WHERE altura = :p_altura´); DM.qTemp.ParamByName(´p_altura´).AsInteger := 170; DM.qTemp.open;
Gostei + 0
22/09/2005
N1
Gostei + 0
22/09/2005
Rjun
Gostei + 0
22/09/2005
N1
Fiz o q vc escreveu e não funcionou.
Tentei em outra máquina e tb não funcionou.
Gostei + 0
22/09/2005
Silviogs
DM.qTemp.close;
DM.qTemp.SQL.Clear;
DM.qTemp.Add(´SELECT * FROM tabela´);
DM.qTemp.Add(´WHERE altura =: p_altura´); errado
existe um espaço depois dos : ^
correto seria:
DM.qTemp.Add(´WHERE altura =:p_altura´); correto
DM.qTemp.params.parseSql(DM.qTemp.SQL.Text,true);
DM.qTemp.ParamByName(´p_altura´).AsString:=´170´;
DM.qTemp.open;
caso o campo seja numérico o AsString faz a conversão.
desta forma não aparecerá o erro de parametro não encontrado
´Ocorre a msg: parameter ´p_altura´ not found´
Atenciosamente
Silvio Guedes
Gostei + 0
22/09/2005
N1
Obrigado a todos que ajudaram.
Gostei + 0
22/09/2005
Rjun
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)