ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

erro: Parameter 'cli_nome' not found

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
wagnerbrito
Novato
Novato


Registrado: Quinta-Feira, 29 de Mai de 2014
Mensagens: 11

MensagemEnviada: Dom Jun 08, 2014 1:51 pm    Assunto: erro: Parameter 'cli_nome' not found Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
anderbelluno
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011
Mensagens: 1008
Localização: Cianorte-PR

MensagemEnviada: Dom Jun 08, 2014 1:58 pm    Assunto: Responder com Citação

vc ta alimentando a variavel nome?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
wagnerbrito
Novato
Novato


Registrado: Quinta-Feira, 29 de Mai de 2014
Mensagens: 11

MensagemEnviada: Dom Jun 08, 2014 3:36 pm    Assunto: Responder com Citação

anderbelluno escreveu:
vc ta alimentando a variavel nome?


isso mesmo, a variavel nome e variavel idade está sendo alimentado.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
wjuniordias
Profissional
Profissional


Registrado: Sexta-Feira, 16 de Março de 2012
Mensagens: 667

MensagemEnviada: Seg Jun 09, 2014 11:51 am    Assunto: Re: erro: Parameter 'cli_nome' not found Responder com Citação

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.
Wink
_________________
"O sábio nunca diz tudo o que pensa, mas pensa sempre tudo o que diz." (Aristóteles)
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário MSN Messenger
wagnerbrito
Novato
Novato


Registrado: Quinta-Feira, 29 de Mai de 2014
Mensagens: 11

MensagemEnviada: Ter Jun 10, 2014 11:07 pm    Assunto: Re: erro: Parameter 'cli_nome' not found Responder com Citação

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.
Wink


Esse AsString não está aparecendo quando digito o ponto. Precisa de mais alguma uses?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
anderbelluno
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Novembro de 2011
Mensagens: 1008
Localização: Cianorte-PR

MensagemEnviada: Qua Jun 11, 2014 1:30 am    Assunto: Re: erro: Parameter 'cli_nome' not found Responder com Citação

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.
Wink


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
Ver o perfil de Usuários Enviar Mensagem Particular
wagnerbrito
Novato
Novato


Registrado: Quinta-Feira, 29 de Mai de 2014
Mensagens: 11

MensagemEnviada: Qui Jun 12, 2014 8:03 pm    Assunto: Re: erro: Parameter 'cli_nome' not found Responder com Citação

Utilizo o delphi 2010.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gaviao2014
Novato
Novato


Registrado: Sexta-Feira, 13 de Junho de 2014
Mensagens: 3

MensagemEnviada: Sex Jun 13, 2014 2:53 am    Assunto: Re: erro: Parameter 'cli_nome' not found Responder com Citação

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ç

Wink


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
Ver o perfil de Usuários Enviar Mensagem Particular
gaviao2014
Novato
Novato


Registrado: Sexta-Feira, 13 de Junho de 2014
Mensagens: 3

MensagemEnviada: Sex Jun 13, 2014 2:59 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
wjuniordias
Profissional
Profissional


Registrado: Sexta-Feira, 16 de Março de 2012
Mensagens: 667

MensagemEnviada: Ter Jul 22, 2014 3:28 pm    Assunto: Re: erro: Parameter 'cli_nome' not found Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário MSN Messenger
johnny-walker
Moderador
Moderador


Registrado: Sábado, 4 de Outubro de 2003
Mensagens: 10509
Localização: Contagem/MG - BRAZIL

MensagemEnviada: Qua Jul 23, 2014 10:19 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB