Ir para conteúdo
Fórum Script Brasil
  • 0

[resolvido] Edatabaseerro


Samuelsjn

Pergunta

Ola pessoal,

Estou desenvolvendo um sisteminha utilizando delphi 7 + postgres.

Utilizei o componente ADOConnection para fazer a conexão com o driver ODBC do postgres.

A conexão esta legal, eu estou conseguindo ver todas as minhas tabelas no componente ADOTable, mas quando eu utilizo o componente ADOQuery, para inserir um valor na tabela, ele esta me trazendo uma exeção:

EDatabaseErro whith message 'Query: Parameter 'nome' not found', Process stopped.

Esse erro esta falando que não esta encontrando o atributo nome da minha tabela. Como posso resolver esse problema?

escrevi um codigo simples só para cadastrar o nome.

DataModule1.Query.Close;

DataModule1.Query.SQL.Add('select * from fornecedores');

DataModule1.Query.Parameters.ParamByName('cidade').Value := edtNome.Text;

DataModule1.Query.ExecSQL;

Ele da o erro exatamente quando mando abrir a conexão (ExecSQL). alguém pode me ajudar?

Desde já o meu muito obrigado.

Abraço

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

EDatabaseErro whith mensagem ' Query: Parâmetro ' nome' não encontrado', Processo parou.

aparentemente pareçe que voce definiu um parametro chamado 'nome' mas ao abrir a query este paramentro não esta aparecendo, como se voce tivesse definido assim = :nome ou Parameters.ParamByName('nome').Value ... da uma verificada na propriedade Params da query.

Link para o comentário
Compartilhar em outros sites

  • 0
(...), ele esta me trazendo uma exeção:

EDatabaseErro whith message 'Query: Parameter 'nome' not found', Process stopped.

Esse erro esta falando que não esta encontrando o atributo nome da minha tabela. Como posso resolver esse problema?

escrevi um codigo simples só para cadastrar o nome.

DataModule1.Query.Close;

DataModule1.Query.SQL.Add('select * from fornecedores');

DataModule1.Query.Parameters.ParamByName('cidade').Value := edtNome.Text;

DataModule1.Query.ExecSQL;

Ele da o erro exatamente quando mando abrir a conexão (ExecSQL). alguém pode me ajudar?

Samuelsjn, Temos alguns problemas aqui. Vejamos:

1) A mensagem reclama da inexistência de um parâmetro chamado "nome". Porém, vê-se que você tenta passar um parâmetro chamado "cidade" (ver em ParamByName);

2) Usando um parâmetro "nome" ou "cidade", um deles deveria estar declarado na cláusula "where", a qual não foi utilizada em sua consulta;

3) Uma instrução do tipo SELECT é executada em um componente query através do método "Open". Utiliza-se "ExecSQL", para comandos SQL que não retornem linhas (resultado da consulta), ou seja, UPDATE, DELETE, CREATE, DROP, ... ;

4) Como esta instrução SQL é adicionada a propriedade SQL da query em tempo de execução, você não pode deixar de limpá-la antes de fazer a nova atribuição. Resumindo, antes de chamar o método SQL.Add(..) você deve chamar SQL.Clear.

como deveria ficar:

DataModule1.Query.Close;

DataModule1.Query.SQL.Clear;

DataModule1.Query.SQL.Add('select * from fornecedores where cidade = :cidade');

DataModule1.Query.Parameters.ParamByName('cidade').AsString := edtNome.Text;

DataModule1.Query.Open;

Observe que na cláusula "where", testar com "=" significa que deverá haver na tabela uma cidade "escrita" exatamente como o parâmetro informado.

Pode haver necessidade de converter para upcase os valores a serem testados ou, se for uma pesquisa parcial, ser utilizado o LIKE.

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...