nsouzajf 0 Denunciar post Postado Maio 16, 2009 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
scorpio 7 Denunciar post Postado Maio 16, 2009 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
nsouzajf 0 Denunciar post Postado Maio 17, 2009 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
scorpio 7 Denunciar post Postado Maio 17, 2009 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
nsouzajf 0 Denunciar post Postado Maio 17, 2009 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
Chrnos 30 Denunciar post Postado Maio 17, 2009 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
nsouzajf 0 Denunciar post Postado Maio 18, 2009 colegas, bom dia! Deu certo a syntaxe, obrigado por ajudar. Eu estava colocando-a no lugar errado! Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites