Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
wagnerbrito Novato
Registrado: Quinta-Feira, 29 de Mai de 2014 Mensagens: 11
|
Enviada: Dom Jun 08, 2014 1:51 pm Assunto: erro: Parameter 'cli_nome' not found |
|
|
O que pode ser este erro: Parameter 'cli_nome' not found
já tentei um monte de coisa e nada.... ajudem por favor.
Código: | function MCliente.Insert: boolean;
var
ADOQuery1 : TADOQuery;
begin
conexao := TConexao.Create;
conn := conexao.conectarDB;
if(conn <> nil) then
begin
with ADOQuery1 do
begin
ADOQuery1 := TADOQuery.Create(nil);
ADOQuery1.SQL.Add('INSERT INTO CLIENTE VALUES (:cli_nome, :cli_idade)');
ADOQuery1.Prepared := True;
ADOQuery1.Parameters.ParamByName('cli_nome').Value := nome; //nome é uma variavel
ADOQuery1.Parameters.ParamByName('cli_nome').DataType := ftString;
ADOQuery1.Parameters.ParamByName('cli_idade').Value := idade; //idade é uma variaveç
ADOQuery1.Parameters.ParamByName('cli_idade').DataType := ftInteger;
ADOQuery1.ExecSQL;
end;
conexao.desconectarDB;
Result:= true;
end
else
Result:= false;
end; |
|
|
Voltar ao Topo |
|
|
anderbelluno Colaborador
Registrado: Quarta-Feira, 23 de Novembro de 2011 Mensagens: 1029 Localização: Cianorte-PR
|
Enviada: Dom Jun 08, 2014 1:58 pm Assunto: |
|
|
vc ta alimentando a variavel nome? |
|
Voltar ao Topo |
|
|
wagnerbrito Novato
Registrado: Quinta-Feira, 29 de Mai de 2014 Mensagens: 11
|
Enviada: Dom Jun 08, 2014 3:36 pm Assunto: |
|
|
anderbelluno escreveu: | vc ta alimentando a variavel nome? |
isso mesmo, a variavel nome e variavel idade está sendo alimentado. |
|
Voltar ao Topo |
|
|
wjuniordias Profissional
Registrado: Sexta-Feira, 16 de Março de 2012 Mensagens: 667
|
Enviada: Seg Jun 09, 2014 11:51 am Assunto: Re: erro: Parameter 'cli_nome' not found |
|
|
No caso, vc está fazendo algo meio parecido com Java. No Delphi eu faço um pouco diferente, tente fazer as seguintes alterações no seu código:
Código: |
ADOQuery1.Parameters.ParamByName('cli_nome').AsString:= nome; //nome é uma variavel
ADOQuery1.Parameters.ParamByName('cli_idade').AsInteger := idade; //idade é uma variaveç
|
Outro detalhe, não estou vendo vc destruir o ADOQuery que foi instanciado.
_________________ "O sábio nunca diz tudo o que pensa, mas pensa sempre tudo o que diz." (Aristóteles) |
|
Voltar ao Topo |
|
|
wagnerbrito Novato
Registrado: Quinta-Feira, 29 de Mai de 2014 Mensagens: 11
|
Enviada: Ter Jun 10, 2014 11:07 pm Assunto: Re: erro: Parameter 'cli_nome' not found |
|
|
wjuniordias escreveu: | No caso, vc está fazendo algo meio parecido com Java. No Delphi eu faço um pouco diferente, tente fazer as seguintes alterações no seu código:
Código: |
ADOQuery1.Parameters.ParamByName('cli_nome').AsString:= nome; //nome é uma variavel
ADOQuery1.Parameters.ParamByName('cli_idade').AsInteger := idade; //idade é uma variaveç
|
Outro detalhe, não estou vendo vc destruir o ADOQuery que foi instanciado.
|
Esse AsString não está aparecendo quando digito o ponto. Precisa de mais alguma uses? |
|
Voltar ao Topo |
|
|
anderbelluno Colaborador
Registrado: Quarta-Feira, 23 de Novembro de 2011 Mensagens: 1029 Localização: Cianorte-PR
|
Enviada: Qua Jun 11, 2014 1:30 am Assunto: Re: erro: Parameter 'cli_nome' not found |
|
|
wagnerbrito escreveu: | wjuniordias escreveu: | No caso, vc está fazendo algo meio parecido com Java. No Delphi eu faço um pouco diferente, tente fazer as seguintes alterações no seu código:
Código: |
ADOQuery1.Parameters.ParamByName('cli_nome').AsString:= nome; //nome é uma variavel
ADOQuery1.Parameters.ParamByName('cli_idade').AsInteger := idade; //idade é uma variaveç
|
Outro detalhe, não estou vendo vc destruir o ADOQuery que foi instanciado.
|
Esse AsString não está aparecendo quando digito o ponto. Precisa de mais alguma uses? |
Não.
qual a versão do seu delphi? |
|
Voltar ao Topo |
|
|
wagnerbrito Novato
Registrado: Quinta-Feira, 29 de Mai de 2014 Mensagens: 11
|
Enviada: Qui Jun 12, 2014 8:03 pm Assunto: Re: erro: Parameter 'cli_nome' not found |
|
|
Utilizo o delphi 2010. |
|
Voltar ao Topo |
|
|
gaviao2014 Novato
Registrado: Sexta-Feira, 13 de Junho de 2014 Mensagens: 3
|
Enviada: Sex Jun 13, 2014 2:53 am Assunto: Re: erro: Parameter 'cli_nome' not found |
|
|
wjuniordias escreveu: | No caso, vc está fazendo algo meio parecido com Java. No Delphi eu faço um pouco diferente, tente fazer as seguintes alterações no seu código:
Código: |
ADOQuery1.Parameters.ParamByName('cli_nome').AsString:= nome; //nome é uma variavel
ADOQuery1.Parameters.ParamByName('cli_idade').AsInteger := idade; //idade é uma variaveç
|
|
O .AsString e o .AsInteger é somente para o componente query do DBExpress. No caso dele, ele tá usando o componente query do ADO que não tem essa opção. |
|
Voltar ao Topo |
|
|
gaviao2014 Novato
Registrado: Sexta-Feira, 13 de Junho de 2014 Mensagens: 3
|
Enviada: Sex Jun 13, 2014 2:59 am Assunto: |
|
|
Tenta isso:
ADOQuery1.Parameters.ParamByName('cli_nome').Value := nome; //nome é uma variavel
ADOQuery1.Parameters.ParamByName('cli_nome').DataType := ftString;
ADOQuery1.Parameters.ParamByName('cli_idade').Value := idade; //idade é uma variaveç
ADOQuery1.Parameters.ParamByName('cli_idade').DataType := ftInteger;
ADOQuery1.Parameters.ParseSQL(ADOQuery1.SQL.Text, True); |
|
Voltar ao Topo |
|
|
wjuniordias Profissional
Registrado: Sexta-Feira, 16 de Março de 2012 Mensagens: 667
|
Enviada: Ter Jul 22, 2014 3:28 pm Assunto: Re: erro: Parameter 'cli_nome' not found |
|
|
gaviao2014 escreveu: |
O .AsString e o .AsInteger é somente para o componente query do DBExpress. No caso dele, ele tá usando o componente query do ADO que não tem essa opção. |
Verdade, havia me esquecido desse detalhe. _________________ "O sábio nunca diz tudo o que pensa, mas pensa sempre tudo o que diz." (Aristóteles) |
|
Voltar ao Topo |
|
|
johnny-walker Moderador
Registrado: Sábado, 4 de Outubro de 2003 Mensagens: 10653 Localização: Contagem/MG - BRAZIL
|
Enviada: Qua Jul 23, 2014 10:19 am Assunto: |
|
|
O problema é que vc fez o sql errado, a sintaxe correta seria:
INSERT INTO (campo1, campo2) VALUES (:Campo1, :Campo2)
Você não pode fazer isto:
Código: |
insert into clientes values (:campo1, :campo2), pois é uma sintaxe errada. |
bye _________________ P.O.W.E.R B.Y D.E.L.P.H.I |
|
Voltar ao Topo |
|
|
|