O que Esta errado neste código...

Delphi

03/05/2013

Estou utilizando ADOQuery para realizar este procedimento.Este código esta retronando erro de sintaxe. Onde está o erro?
sql.Clear;
      sql.Add('Update cadastros Set (endereco=:end,bairro=:bairro,cep=:cep,'+
      'nome=:nome,datanasc=:datanasc,sexo=:sexo,nomepai=:nomepai,'+
      'nomemae=:nomemae,numero=:numero,compleend=:compleend,serie=:serie'+
      ',email=:email,celular=:celular,telfixo=:telfixo,telalternativo='+
      ':telalternativo,rg=:rg,cpf=:cpf) where idcadastro=:D1');
      Parameters.ParamByName('datanasc').value:=StrTodate(MaskEdit2.Text);
      Parameters.ParamByName('end').value:=REMOVEACENTO(Edit2.Text);
      Parameters.ParamByName('bairro').value:=REMOVEACENTO(Edit9.Text);
      Parameters.ParamByName('cep').value:=MaskEdit3.Text;
      Parameters.ParamByName('nome').value:=REMOVEACENTO(Edit1.Text);
      Parameters.ParamByName('sexo').value:=ComboBox1.Text;
      Parameters.ParamByName('nomepai').value:=REMOVEACENTO(Edit7.Text);
      Parameters.ParamByName('nomemae').value:=REMOVEACENTO(Edit6.Text);
      Parameters.ParamByName('numero').value:=Edit3.Text;
      Parameters.ParamByName('compleend').value:=REMOVEACENTO(Edit8.Text);
      Parameters.ParamByName('serie').value:=TrocaCaracterEspecial(Edit13.Text,true);
      Parameters.ParamByName('email').value:=Edit14.Text;
      Parameters.ParamByName('celular').value:=MaskEdit4.Text;
      Parameters.ParamByName('telfixo').value:=MaskEdit5.Text;
      Parameters.ParamByName('telalternativo').value:=MaskEdit6.Text;
      Parameters.ParamByName('rg').value:=Edit9.Text;
      Parameters.ParamByName('cpf').value:=MaskEdit1.Text;
      Parameters.ParamByName('D1').value:=StrToInt(Label18.Caption);
      execsql;

Ja to ficando loco com este erro....se alguém puder ajudar ficarei muito grato.
Leonardo Xavier

Leonardo Xavier

Curtidas 0

Respostas

Wilton Júnior

Wilton Júnior

03/05/2013

Apos tira o parentese do set ( e do final antes do where ).
Provavelmente vc deve ter confundido com o insert pois nele precisa colocar os campo em parentese no update, select e delete nao a necessidade exceto se tiver que fazer estrutura de decisão.

sql.Clear;
sql.Add('Update cadastros Set endereco=:end,bairro=:bairro,cep=:cep,'+
'nome=:nome,datanasc=:datanasc,sexo=:sexo,nomepai=:nomepai,'+
'nomemae=:nomemae,numero=:numero,compleend=:compleend,serie=:serie'+
',email=:email,celular=:celular,telfixo=:telfixo,telalternativo='+
':telalternativo,rg=:rg,cpf=:cpf where idcadastro=:D1');
Parameters.ParamByName('datanasc').value:=StrTodate(MaskEdit2.Text);
Parameters.ParamByName('end').value:=REMOVEACENTO(Edit2.Text);
Parameters.ParamByName('bairro').value:=REMOVEACENTO(Edit9.Text);
Parameters.ParamByName('cep').value:=MaskEdit3.Text;
Parameters.ParamByName('nome').value:=REMOVEACENTO(Edit1.Text);
Parameters.ParamByName('sexo').value:=ComboBox1.Text;
Parameters.ParamByName('nomepai').value:=REMOVEACENTO(Edit7.Text);
Parameters.ParamByName('nomemae').value:=REMOVEACENTO(Edit6.Text);
Parameters.ParamByName('numero').value:=Edit3.Text;
Parameters.ParamByName('compleend').value:=REMOVEACENTO(Edit8.Text);
Parameters.ParamByName('serie').value:=TrocaCaracterEspecial(Edit13.Text,true);
Parameters.ParamByName('email').value:=Edit14.Text;
Parameters.ParamByName('celular').value:=MaskEdit4.Text;
Parameters.ParamByName('telfixo').value:=MaskEdit5.Text;
Parameters.ParamByName('telalternativo').value:=MaskEdit6.Text;
Parameters.ParamByName('rg').value:=Edit9.Text;
Parameters.ParamByName('cpf').value:=MaskEdit1.Text;
Parameters.ParamByName('D1').value:=StrToInt(Label18.Caption);
execsql;

Use esse código acima e teste.

espero ter ajudado.

"Deus Abençoe"
GOSTEI 0
Leonardo Xavier

Leonardo Xavier

03/05/2013

De fato...copiei o codigo do insert into....mas blz valew, agora ta dando erro de falto valor para algum parâmetro, vou ter que debugar para achar o erro. valew.
GOSTEI 0
Wilton Júnior

Wilton Júnior

03/05/2013

me parece que ta falando o paramentro para endereço
GOSTEI 0
POSTAR