Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

nsouzajf

[Resolvido] Erro na syntaxe para atualizar registro

Recommended Posts

Boa tarde,

estou usando a conexão com o dbexpress a syntaxe abaixo retorna o seguinte erro quando clico no botão salvar:

(Estou usando o MySql 5)

 

DM.Q_Funcionarios.Active := False;

DM.Q_Funcionarios.SQL.Clear;

DM.Q_Funcionarios.SQL.Add('UPDATE FUNCIONARIO SET');

DM.Q_Funcionarios.SQL.Add('CODESPECIALIDADE="'+edtcodespecialidade.Text+',');

DM.Q_Funcionarios.SQL.Add('NOME="'+EdtNome.Text+',');

DM.Q_Funcionarios.SQL.Add('ENDERECO="'+edtEndereco.Text+',');

DM.Q_Funcionarios.SQL.Add('NUMERO="'+edtnumero.Text+',');

DM.Q_Funcionarios.SQL.Add('BAIRRO="'+edtBairro.Text+'" WHERE CODFUNC='+#39+IntToStr(codFuncionario)+#39);

DM.Q_Funcionarios.ExecSQL;

 

'You have an error in your SQL syntaxe; check the manual that corresponds to your Mysql server version for the rigth syntaxe to user ner "Maria Jose"

Endereco="25,

numero="25,

bairro="Jacar" WHERE CODFUNC" at line 2'.

 

Por favor me ajudem

 

1- Onde esta o erro nesta syntaxe?

2-Quando se diz at line 2, qual linha é esta no código acima?

 

Obrigado.

 

Se alguem tiver um syntaxe que funcione por favor post para mim!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não teria que concatenar com aspas simples os valores ? Que nem fez no WHERE.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você não teria que concatenar com aspas simples os valores ? Que nem fez no WHERE.

amigo,

sinceridade não sei, ja tentei várias coisas por isso postei o problema aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK.

 

Faltavam aspas em alguns valores.

Tente isso.

 

DM.Q_Funcionarios.SQL.Add('UPDATE FUNCIONARIO SET');
DM.Q_Funcionarios.SQL.Add('CODESPECIALIDADE='+ QuotedStr(edtcodespecialidade.Text)+',');
DM.Q_Funcionarios.SQL.Add('NOME='+QuotedStr(EdtNome.Text)+',');
DM.Q_Funcionarios.SQL.Add('ENDERECO='+QuotedStr(edtEndereco.Text)+',');
DM.Q_Funcionarios.SQL.Add('NUMERO='+QuotedStr(edtnumero.Text)+',');
DM.Q_Funcionarios.SQL.Add('BAIRRO='+QuotedStr(edtBairro.Text)+' WHERE CODFUNC='+QuotedStr(IntToStr(codFuncionario)));

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK.

 

Faltavam aspas em alguns valores.

Tente isso.

 

DM.Q_Funcionarios.SQL.Add('UPDATE FUNCIONARIO SET');
DM.Q_Funcionarios.SQL.Add('CODESPECIALIDADE='+ QuotedStr(edtcodespecialidade.Text)+',');
DM.Q_Funcionarios.SQL.Add('NOME='+QuotedStr(EdtNome.Text)+',');
DM.Q_Funcionarios.SQL.Add('ENDERECO='+QuotedStr(edtEndereco.Text)+',');
DM.Q_Funcionarios.SQL.Add('NUMERO='+QuotedStr(edtnumero.Text)+',');
DM.Q_Funcionarios.SQL.Add('BAIRRO='+QuotedStr(edtBairro.Text)+' WHERE CODFUNC='+QuotedStr(IntToStr(codFuncionario)));

Agora apareceu a mensagem de erro:

'Q_Funcionario: Parameter 'CODESPECIALIDADE' not found.

Mas CODESPECIALIDADE existe no banco de dados e na Q_Funcionario quando clico 2 vezes nome esta certo, e anulei esta

linha usando //, mas ai o erro passou para o campo Nome e assim por diante.

A syntaxe é este mesmo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeira pergunta: qual BD você está usando? Alguns BD são case sensitive, isto é, só aceitam querys que tenham os campos escritos da mesma forma que estão gravados nas tabelas (se tiver misturado minúscula e maiúscula no nome, tem que copiar igual). Segundo: todos os campos que está dando update realmente existem com estes nomes na tabela Funcionario? Terceiro: todos os campos que está atualizando são strings? Quarto: já tentou executar o update manualmente no BD para confirmar se a forma como montou está correta? Quinta: Poste o código completo desta procedure.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.