Fórum Alguem Poderia me ajudar com esse erro #464334
17/12/2013
0
estou criando um formulario de cadastro de clientes com base de dados do acess , eu criei a interface fiz a conexão com o banco de dados tudo certinho
criei uma procedure para inserir dados via sql , eu chamo essa procedure no botao inserir . o programa ta rodando sem acusar nada , mas quando eu coloco os dados
nos campos e clico em inserir ele retorna um erro de sintaxe INTO ,
procedure Tformcadcli.inserircliente ( nome:string; razao:string; fantasia:string; cidade:string;
estado:string; cpf:integer; telefone:integer; endeco:string; sobrenome:string;
idade:integer; estadocivil:string);
begin
with dm.query do
begin
close;
dm.query.SQL.Clear;
sql.Add('Insert INTO Cliente (Nome,'+
'RazaoSocial,'+
'NomeFantasia,'+
'Cidade,'+
'Estado,'+
'CPF/CNPJ,'+
'Telefone,'+
'Endereco,'+
'Sobrenome,'+
'Idade,'+
'estadocivil)+VALUES (:Nome, :RazaoSocial,:NomeFantasia,:Cidade,:Estado,:CPF/CNPJ,:Telefone,:Endereco,:Sobrenome,:Idade,:estadocivil');
Parameters.ParamByName('Nome').Value:=txtnome.Text;
Parameters.ParamByName('RazaoSocial').Value:=txtrazao.Text;
Parameters.ParamByName('NomeFantasia').Value:=txtfantasia.Text;
Parameters.ParamByName('Cidade').Value:=txtcidade.Text;
Parameters.ParamByName('Estado').Value:=txtestado.Text;
Parameters.ParamByName('CPF/CNPJ').Value:=txtcpf.Text;
Parameters.ParamByName('Telefone').Value:=txttelefone.Text;
Parameters.ParamByName('Endereco').Value:=txtend.Text;
Parameters.ParamByName('Sobrenome').Value:=txtsobre.Text;
Parameters.ParamByName('Idade').Value:=txtidade.Text;
Parameters.ParamByName('estadocivil').Value:=cm.Text;
execsql ();
end;
end;
Luan Romeu
Curtir tópico
+ 0Posts
17/12/2013
Ricardo
suatabela.insert;
suatabela.post;
Gostei + 0
18/12/2013
Marcos Saffran
tente alterar a linha
'estadocivil)+VALUES (:Nome, :RazaoSocial,:NomeFantasia,:Cidade,:Estado,:CPF/CNPJ,:Telefone,:Endereco,:Sobrenome,:Idade,:estadocivil');
por
'estadocivil) '+ 'VALUES (:Nome, :RazaoSocial,:NomeFantasia,:Cidade,:Estado,:CPF/CNPJ,:Telefone,:Endereco,:Sobrenome,:Idade,:estadocivil)');
ou por
'estadocivil) VALUES (:Nome, :RazaoSocial,:NomeFantasia,:Cidade,:Estado,:CPF/CNPJ,:Telefone,:Endereco,:Sobrenome,:Idade,:estadocivil)');
Gostei + 0
18/12/2013
Felippe Tadeu
Se vc copiou exatamente como vc digitou, é bem provável que seja esse + antes de "Values"
Gostei + 0
18/12/2013
David Sylvestre
procedure Tformcadcli.inserircliente ( nome:string; razao:string; fantasia:string; cidade:string;
estado:string; cpf:integer; telefone:integer; endeco:string; sobrenome:string;
idade:integer; estadocivil:string);
begin
with dm.query do
begin
close;
dm.query.SQL.Clear;
sql.Add('Insert INTO Cliente (Nome,'+
'RazaoSocial,'+
'NomeFantasia,'+
'Cidade,'+
'Estado,'+
'CPF/CNPJ,'+
'Telefone,'+
'Endereco,'+
'Sobrenome,'+
'Idade,'+
'estadocivil)'+// concatenação estava errada
'VALUES (:Nome, :RazaoSocial,:NomeFantasia,:Cidade,:Estado,:CPF/CNPJ,:Telefone,:Endereco,:Sobrenome,:Idade,:estadocivil)');// faltou fechar parenteses
Parameters.ParamByName('Nome').Value:=txtnome.Text;
Parameters.ParamByName('RazaoSocial').Value:=txtrazao.Text;
Parameters.ParamByName('NomeFantasia').Value:=txtfantasia.Text;
Parameters.ParamByName('Cidade').Value:=txtcidade.Text;
Parameters.ParamByName('Estado').Value:=txtestado.Text;
Parameters.ParamByName('CPF/CNPJ').Value:=txtcpf.Text;
Parameters.ParamByName('Telefone').Value:=txttelefone.Text;
Parameters.ParamByName('Endereco').Value:=txtend.Text;
Parameters.ParamByName('Sobrenome').Value:=txtsobre.Text;
Parameters.ParamByName('Idade').Value:=txtidade.Text;
Parameters.ParamByName('estadocivil').Value:=cm.Text;
execsql ();
end;
end;
Gostei + 0
18/12/2013
Luan Romeu
perfeitamente , Agradeço a todos pela atençao . Post Resolvido!
Gostei + 0
18/12/2013
Luan Romeu
suatabela.insert;
suatabela.post;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)