Fórum O que está errado nesta linha? #455191
13/09/2013
0
sql.Add('UPDATE clientes SET Cod_Cliente=:A,Nome_Cliente=:B,CPF_CNPJ_Cliente=:C,Data_Cadastro_Cliente=:D,Logradouro_Cliente=:E,Num_Cliente=:F WHERE Cod_Cliente=1);
Fabricio Luciano
Curtir tópico
+ 0Posts
13/09/2013
Marcos Oliveira
Att,
Marcos
Gostei + 0
13/09/2013
Deivison Melo
ao invés de
sql.Add('UPDATE clientes SET Cod_Cliente=:A,Nome_Cliente=:B,CPF_CNPJ_Cliente=:C,Data_Cadastro_Cliente=:D,Logradouro_Cliente=:E,Num_Cliente=:F WHERE Cod_Cliente=1);
Estava faltando uma aspa " ' " (simples)
Gostei + 0
13/09/2013
Hilton Sá
Gostei + 0
13/09/2013
Fabricio Luciano
Gostei + 0
13/09/2013
Fabricio Luciano
Gostei + 0
13/09/2013
Marcos Oliveira
Gostei + 0
13/09/2013
Fabricio Luciano
esse é o meu código para update:
with Data_Module.Query_Cadastro_Clientes do
begin
close;
sql.Clear;
sql.Add('UPDATE clientes SET Cod_Cliente=:A,Nome_Cliente=:B,CPF_CNPJ_Cliente=:C,Data_Cadastro_Cliente=:D,Logradouro_Cliente=:E,Num_Cliente=:F,Complemento_Cliente=:G,Bairro_Cliente=:H,Cidade_Cliente=:I,UF_Cliente=:J,CEP_Cliente=:L,Telefone_Cliente=:M');
sql.Add(',Celular_Cliente=:N,Email_Cliente=:O,Tipo_Cliente=:P WHERE Cod_Cliente=:A');
Parameters.ParamByName('A').Value := StrtoInt(Edit_Cod_Cliente.Text);
Parameters.ParamByName('B').Value := Edit_Nome_Cliente.Text;
Parameters.ParamByName('C').Value := Edit_CPF_CNPJ_Cliente.Text;
Parameters.ParamByName('D').Value := Edit_Data_Cadastro_Cliente.Text;
Parameters.ParamByName('E').Value := Edit_Logradouro_Cliente.Text;
Parameters.ParamByName('F').Value := Edit_Num_Cliente.Text;
Parameters.ParamByName('G').Value := Edit_Complemento_Cliente.Text;
Parameters.ParamByName('H').Value := Edit_Bairro_Cliente.Text;
Parameters.ParamByName('I').Value := Edit_Cidade_Cliente.Text;
Parameters.ParamByName('J').Value := Combo_UF_Cliente.Text;
Parameters.ParamByName('L').Value := Edit_CEP_Cliente.Text;
Parameters.ParamByName('M').Value := Edit_Telefone_Cliente.Text;
Parameters.ParamByName('N').Value := Edit_Celular_Cliente.Text;
Parameters.ParamByName('O').Value := Edit_Email_Cliente.Text;
Parameters.ParamByName('P').Value := Combo_Tipo_Cliente.Text;
ExecSQL;
A mensagem do delphi é: Objeto Parameter definido incorretamente. As informações são inconsistentes ou incompletas.
Gostei + 0
13/09/2013
Fabricio Luciano
Gostei + 0
13/09/2013
Marcos Oliveira
Gostei + 0
13/09/2013
Hilton Sá
Gostei + 0
13/09/2013
Marcio
se você está usando Query da aba ADO use Params.ParamByName, ou seja, use a propriedade Params. antes do ParamByName...
e outra nunca use o ParamByName.('campo').Value para atribuição... use AsInteger, AsString, etc...
use o ParamByName('campo').Value para pegar valor do parâmetro...
falow!!!
Gostei + 0
13/09/2013
Joel Rodrigues
1) Você está usando o parâmetro A duas vezes. Experimente mudar um deles para que não use o mesmo parâmetro mais de uma vez.
2) Qual é a lógica de atualizar um campo, passando para ele seu próprio valor?
Gostei + 0
14/09/2013
Rodrigo Cordeiro
Acho que a maioria dos componentes de acesso da dados não suportam isso, o que penso ser um erro! Muitas vezes criamos instruções SQL com sub-query's que requerem o uso do mesmo valor de parâmetro mais de uma vez... Ai você é obrigado a fazer A1, A2 e ao atribuir com ParamByName colocar o mesmo valor para ambos...
Obs: Com Zeos isso não ocorre. Com ADO sim...
[]'s
Rodrigo - qmd
qmd@usercontrol.com.br
Gostei + 0
14/09/2013
Fabricio Luciano
Application.MessageBox('Registro Alterado com sucesso!!!', 'Aviso do Sistema', MB_OK);
// Carregando as informações
data_module.Query_Clientes.Open;
data_module.Query_Clientes.Refresh;
Gostei + 0
14/09/2013
Joel Rodrigues
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)