Fazer Update Set Delphi XE8
Boa noite!!!
Estou tentando fazer update e não está dando certo, está dando a mensagem que este campo não existe
sdsCadClientes.ParamByName('CLI_CELULAR').Value := mskCelular.Text; mas ele existe e não dá certo de eu fazer o update, oque será que esta errado
Obs.: No delphi 7 funciona tranquilamente este código, mas estou migrando para o delphi xe8 e nele não funciona
Estou tentando fazer update e não está dando certo, está dando a mensagem que este campo não existe
sdsCadClientes.ParamByName('CLI_CELULAR').Value := mskCelular.Text; mas ele existe e não dá certo de eu fazer o update, oque será que esta errado
Obs.: No delphi 7 funciona tranquilamente este código, mas estou migrando para o delphi xe8 e nele não funciona
if status = 'E' then
try
Transacao := conexaoBdCadClientes.BeginTransaction;
sdsCadClientes.Close;
sdsCadClientes.CommandType := ctQuery;
sdsCadClientes.CommandText:='UPDATE CADCLIENTES SET ';
sdsCadClientes.CommandText:=sdsCadClientes.CommandText+'CLI_CODIGO = :CLI_CODIGO, CLI_DATACADASTRO = :CLI_DATACADASTRO, CLI_DATAALTERACAO = :CLI_DATAALTERACAO, CLI_SITUACAO = :CLI_SITUACAO, ';
sdsCadClientes.CommandText:=sdsCadClientes.CommandText+'CLI_NOME = :CLI_NOME, CLI_ENDERECO = :CLI_ENDERECO, CLI_NUMERO = :CLI_NUMERO, CLI_BAIRRO = :CLI_BAIRRO, ';
sdsCadClientes.CommandText:=sdsCadClientes.CommandText+'CLI_COMPLEMENTO = :CLI_COMPLEMENTO, CLI_CODIGOCIDADE = :CLI_CODIGOCIDADE, CLI_NOMECIDADE = :CLI_NOMECIDADE, CLI_ESTADO = :CLI_ESTADO, CLI_CEP = :CLI_CEP, CLI_RG = :CLI_RG, ';
sdsCadClientes.CommandText:=sdsCadClientes.CommandText+'CLI_CODIGOCPFCNPJ = :CLI_CODIGOCPFCNPJ, CLI_CPFCNPJ = :CLI_CPFCNPJ, CLI_IE = :CLI_IE, CLI_DATANASCIMENTO = :CLI_DATANASCIMENTO, CLI_EMAIL = :CLI_EMAIL, ';
sdsCadClientes.CommandText:=sdsCadClientes.CommandText+'CLI_TELEFONE1 = :CLI_TELEFONE1, CLI_TELEFONE2 = :CLI_TELEFONE2, CLI_CELULAR = :CLI_CELULAR ';
sdsCadClientes.CommandText:=sdsCadClientes.CommandText+'WHERE CLI_CODIGO = :CLI_CODIGO';
sdsCadClientes.ParamByName('CLI_CODIGO').Value := edtCodigo.Text;
sdsCadClientes.ParamByName('CLI_DATACADASTRO').Value := mskDataCadastro.Text;
sdsCadClientes.ParamByName('CLI_DATAALTERACAO').Value := mskDataAlteracao.Text;
sdsCadClientes.ParamByName('CLI_SITUACAO').AsString := edtSituacao.Text;
sdsCadClientes.ParamByName('CLI_NOME').AsString := edtNome.Text;
sdsCadClientes.ParamByName('CLI_ENDERECO').AsString := edtEndereco.Text;
sdsCadClientes.ParamByName('CLI_NUMERO').AsString := edtNumero.Text;
sdsCadClientes.ParamByName('CLI_BAIRRO').AsString := edtBairro.Text;
sdsCadClientes.ParamByName('CLI_COMPLEMENTO').AsString := edtComplemento.Text;
sdsCadClientes.ParamByName('CLI_CODIGOCIDADE').Value := edtCodigoCidade.Text;
sdsCadClientes.ParamByName('CLI_NOMECIDADE').AsString := edtNomeCidade.Text;
sdsCadClientes.ParamByName('CLI_ESTADO').AsString := edtEstado.Text;
sdsCadClientes.ParamByName('CLI_CEP').AsString := mskCep.Text;
sdsCadClientes.ParamByName('CLI_RG').AsString := edtRg.Text;
sdsCadClientes.ParamByName('CLI_CODIGOCPFCNPJ').Value := edtCodigoCfpCnpj.Text;
sdsCadClientes.ParamByName('CLI_CPFCNPJ').AsString := mskCpfCnpj.Text;
sdsCadClientes.ParamByName('CLI_IE').AsString := edtIe.Text;
sdsCadClientes.ParamByName('CLI_DATANASCIMENTO').Value := mskDataNascimento.Text;
sdsCadClientes.ParamByName('CLI_EMAIL').AsString := edtEmail.Text;
sdsCadClientes.ParamByName('CLI_TELEFONE1').AsString := mskTelefone1.Text;
sdsCadClientes.ParamByName('CLI_TELEFONE2').AsString := mskTelefone2.Text;
sdsCadClientes.ParamByName('CLI_CELULAR').Value := mskCelular.Text;
conexaoBdCadClientes.CommitFreeAndNil(Transacao);
sdsCadClientes.ExecSQL;
cdsCadClientes.Close;
cdsCadClientes.Open;
ShowMessage('Os Dados foram gravados com sucesso!');
except
on E : Exception do
BEGIN
ShowMessage('Ocorreu um erro na tentativa de inclusão do registro: ' + E.Message);
conexaoBdCadClientes.RollbackFreeAndNil(Transacao);
END;
end;
//Desabilita os EDITS, MASCARAS, MEMOS E LIMPA todos os EDITS após a gravacao
DesabilitarEdit;
DesabilitarMascara;
DesabilitarMemo;
LimpaCampos;
//Desabilita os botoes do form
btnPesquisar.Enabled := true;
btnIncluir.Enabled := true;
btnSair.Enabled := true;
btnAlterar.Enabled:=false;
btnGravar.Enabled:=false;
btnCancelar.Enabled:=false;Bruno Henrique
Curtidas 0
Melhor post
Jerson Boer
31/10/2018
Se a solicitação era pra mostrar onde repete, segue:
No começo do seu código:
E depois lá no final, quando começa a passar os parâmetros:
No entanto, você só tem 1 passagem de parâmetro:
Com isso, o sistema entende a substituição de somente 1, ficando o outro em aberto errado.
No começo do seu código:
sdsCadClientes.CommandType := ctQuery;
sdsCadClientes.CommandText:='UPDATE CADCLIENTES SET ';
sdsCadClientes.CommandText:=sdsCadClientes.CommandText+'CLI_CODIGO = :CLI_CODIGO,.........E depois lá no final, quando começa a passar os parâmetros:
sdsCadClientes.CommandText:=sdsCadClientes.CommandText+'WHERE CLI_CODIGO = :CLI_CODIGO';
sdsCadClientes.ParamByName('CLI_CODIGO').Value := edtCodigo.Text;.......No entanto, você só tem 1 passagem de parâmetro:
sdsCadClientes.ParamByName('CLI_CODIGO').Value := edtCodigo.Text;Com isso, o sistema entende a substituição de somente 1, ficando o outro em aberto errado.
GOSTEI 1
Mais Respostas
Jerson Boer
31/10/2018
Olá Bruno, observei o seguinte:
Você tem 2 vezes o parâmetro :CLI_CODIGO na sua query, mas tem somente 1 passagem de parâmetros e acredito que os nomes deveriam ser diferentes entre si. Considerando que o :CLI_CODIGO não vai mudar, uma vez que está fazendo o update em um cliente através dele, acredito que o "CLI_CODIGO = :CLI_CODIGO" seria desnecessário.. Avalie a retirada dessa parte ou a diferenciação dos nomes de parâmetros.
Você tem 2 vezes o parâmetro :CLI_CODIGO na sua query, mas tem somente 1 passagem de parâmetros e acredito que os nomes deveriam ser diferentes entre si. Considerando que o :CLI_CODIGO não vai mudar, uma vez que está fazendo o update em um cliente através dele, acredito que o "CLI_CODIGO = :CLI_CODIGO" seria desnecessário.. Avalie a retirada dessa parte ou a diferenciação dos nomes de parâmetros.
GOSTEI 0
Bruno Henrique
31/10/2018
Bom dia!!!
Ainda estou sem solução.
Se alguém conseguir me auxiliar.
Grato
Ainda estou sem solução.
Se alguém conseguir me auxiliar.
Grato
GOSTEI 0
Bruno Henrique
31/10/2018
Jerson, bom dia!!!
Agora que vi sua explicação, então, revisei o código e achei aonde repete 2 vezes o parametro CLI_CODIGO.Teria como você marcar para mim fazendo favor.
Grato
Abraços
Agora que vi sua explicação, então, revisei o código e achei aonde repete 2 vezes o parametro CLI_CODIGO.Teria como você marcar para mim fazendo favor.
Grato
Abraços
GOSTEI 0
Jerson Boer
31/10/2018
Não entendi o que seria o "marcar pra você". Deu certo? Era isso?
GOSTEI 0
Bruno Henrique
31/10/2018
Jerson, boa tarde!!!
Não deu certo, ainda continua dando a mesma mensagem que o parametro CLI_CELULAR not found.
Tem alguma outra sugestão???
Removi o CLI_CODIGO do inicio.Veja abaixo
Não deu certo, ainda continua dando a mesma mensagem que o parametro CLI_CELULAR not found.
Tem alguma outra sugestão???
Removi o CLI_CODIGO do inicio.Veja abaixo
if status = 'E' then
try
Transacao := conexaoBdCadClientes.BeginTransaction;
sdsCadClientes.Close;
sdsCadClientes.CommandType := ctQuery;
sdsCadClientes.CommandText:='UPDATE CADCLIENTES SET ';
sdsCadClientes.CommandText:=sdsCadClientes.CommandText+'CLI_DATACADASTRO = :CLI_DATACADASTRO, ';
sdsCadClientes.CommandText:=sdsCadClientes.CommandText+'CLI_DATAALTERACAO = :CLI_DATAALTERACAO, CLI_SITUACAO = :CLI_SITUACAO, ';
sdsCadClientes.CommandText:=sdsCadClientes.CommandText+'CLI_NOME = :CLI_NOME, CLI_ENDERECO = :CLI_ENDERECO, ';
sdsCadClientes.CommandText:=sdsCadClientes.CommandText+'CLI_NUMERO = :CLI_NUMERO, CLI_BAIRRO = :CLI_BAIRRO, ';
sdsCadClientes.CommandText:=sdsCadClientes.CommandText+'CLI_COMPLEMENTO = :CLI_COMPLEMENTO, CLI_CODIGOCIDADE = :CLI_CODIGOCIDADE, ';
sdsCadClientes.CommandText:=sdsCadClientes.CommandText+'CLI_NOMECIDADE = :CLI_NOMECIDADE, CLI_ESTADO = :CLI_ESTADO, ';
sdsCadClientes.CommandText:=sdsCadClientes.CommandText+'CLI_CEP = :CLI_CEP, CLI_RG = :CLI_RG, ';
sdsCadClientes.CommandText:=sdsCadClientes.CommandText+'CLI_CODIGOCPFCNPJ = :CLI_CODIGOCPFCNPJ, CLI_CPFCNPJ = :CLI_CPFCNPJ, ';
sdsCadClientes.CommandText:=sdsCadClientes.CommandText+'CLI_IE = :CLI_IE, CLI_DATANASCIMENTO = :CLI_DATANASCIMENTO, CLI_EMAIL = :CLI_EMAIL, ';
sdsCadClientes.CommandText:=sdsCadClientes.CommandText+'CLI_TELEFONE1 = :CLI_TELEFONE1, CLI_TELEFONE2 = :CLI_TELEFONE2, CLI_CELULAR = :CLI_CELULAR ';
sdsCadClientes.CommandText:=sdsCadClientes.CommandText+'WHERE (CLI_CODIGO = :CLI_CODIGO)';
sdsCadClientes.ParamByName('CLI_CODIGO').Value := edtCodigo.Text;
sdsCadClientes.ParamByName('CLI_DATACADASTRO').Value := mskDataCadastro.Text;
sdsCadClientes.ParamByName('CLI_DATAALTERACAO').Value := mskDataAlteracao.Text;
sdsCadClientes.ParamByName('CLI_SITUACAO').AsString := edtSituacao.Text;
sdsCadClientes.ParamByName('CLI_NOME').AsString := edtNome.Text;
sdsCadClientes.ParamByName('CLI_ENDERECO').AsString := edtEndereco.Text;
sdsCadClientes.ParamByName('CLI_NUMERO').AsString := edtNumero.Text;
sdsCadClientes.ParamByName('CLI_BAIRRO').AsString := edtBairro.Text;
sdsCadClientes.ParamByName('CLI_COMPLEMENTO').AsString := edtComplemento.Text;
sdsCadClientes.ParamByName('CLI_CODIGOCIDADE').Value := edtCodigoCidade.Text;
sdsCadClientes.ParamByName('CLI_NOMECIDADE').AsString := edtNomeCidade.Text;
sdsCadClientes.ParamByName('CLI_ESTADO').AsString := edtEstado.Text;
sdsCadClientes.ParamByName('CLI_CEP').AsString := mskCep.Text;
sdsCadClientes.ParamByName('CLI_RG').AsString := edtRg.Text;
sdsCadClientes.ParamByName('CLI_CODIGOCPFCNPJ').Value := edtCodigoCfpCnpj.Text;
sdsCadClientes.ParamByName('CLI_CPFCNPJ').AsString := mskCpfCnpj.Text;
sdsCadClientes.ParamByName('CLI_IE').AsString := edtIe.Text;
sdsCadClientes.ParamByName('CLI_DATANASCIMENTO').Value := mskDataNascimento.Text;
sdsCadClientes.ParamByName('CLI_EMAIL').AsString := edtEmail.Text;
sdsCadClientes.ParamByName('CLI_TELEFONE1').AsString := mskTelefone1.Text;
sdsCadClientes.ParamByName('CLI_TELEFONE2').AsString := mskTelefone2.Text;
sdsCadClientes.ParamByName('CLI_CELULAR').Value := mskCelular.Text;
conexaoBdCadClientes.CommitFreeAndNil(Transacao);
sdsCadClientes.ExecSQL;
cdsCadClientes.Close;
cdsCadClientes.Open;
ShowMessage('Os Dados foram gravados com sucesso!');
except
on E : Exception do
BEGIN
ShowMessage('Ocorreu um erro na tentativa de inclusão do registro: ' + E.Message);
conexaoBdCadClientes.RollbackFreeAndNil(Transacao);
END;
end;
//Desabilita os EDITS, MASCARAS, MEMOS E LIMPA todos os EDITS após a gravacao
DesabilitarEdit;
DesabilitarMascara;
DesabilitarMemo;
LimpaCampos;
//Desabilita os botoes do form
btnPesquisar.Enabled := true;
btnIncluir.Enabled := true;
btnSair.Enabled := true;
btnAlterar.Enabled:=false;
btnGravar.Enabled:=false;
btnCancelar.Enabled:=false;GOSTEI 0
Jerson Boer
31/10/2018
Bruno, você consegue postar uma imagem da estrutura/campos da sua tabela CADCLIENTES do banco de dados? Coloque-a em algum site e poste o link da imagem aqui.
GOSTEI 0
Bruno Henrique
31/10/2018
Jerson, bom dia!!!
Segue abaixo o link da imagem da tabela CADCLIENTES
https://uploaddeimagens.com.br/imagens/tabela-jpg-f07fb4ee-9992-4779-875d-38cfb569e4a1
Segue abaixo o link da imagem da tabela CADCLIENTES
https://uploaddeimagens.com.br/imagens/tabela-jpg-f07fb4ee-9992-4779-875d-38cfb569e4a1
GOSTEI 0
Bruno Henrique
31/10/2018
Boa noite!!!
Infelizmente ainda não achei uma solução!!!
Alguém teria alguma sugestão???
Grato
Infelizmente ainda não achei uma solução!!!
Alguém teria alguma sugestão???
Grato
GOSTEI 0