Fórum Atualizaçao de dados na tabela #285921

23/06/2005

0

E aí galera, blz?

Tenho uma aplicaçao que contém um botão gravar, na qual possui linhas de código para efetuar uma transação. Pois bem, qdo este botão é clicado, os dados são gravados na tabela, gerando tbem um código automaticamente. Suponhamos que o nome do cliente foi digitado errado, então deveríamos clicar no botão alterar, fazer a alteraçao do campo, e clicar no gravar novamente. Aí é o X da questão. Não estou conseguindo fazer com que ele grave apenas a modificação, sem gerar um outro registro. Gostaria de saber como resolverei este problema.

Obs.: Estou trabalhando com clientdataset e bd interbase.

Aguardo pelo retorno.

[]´s

Rogério


Roger1976

Roger1976

Responder

Posts

24/06/2005

Edilcimar

sem ver o procedimento fica difícil, mas lá vai um chute, tem certeza que no processo de alteração você está usando edit? talvez esteja utilizando append.


Responder

Gostei + 0

26/06/2005

Roger1976

kra, pra vc entender melhor, é o seguinte: tenho uma tela de cadastro de clientes com botões incluir, gravar, alterar, excluir, cancelar e fechar.

No botão gravar, o sistema grava na tabela os dados inseridos e, para isso, usei transaçao. Aí vai os códigos que eu usei:

procedure TfrmCadClientes.btnGravarClick(Sender: TObject);
var
TD : TTransactionDesc;
begin
btnIncluir.Enabled := true;
btnAlterar.Enabled := true;
btnExcluir.Enabled := true;
btnGravar.Enabled := false;
try
td.TransactionID := 1;
td.IsolationLevel := xilreadCommitted;
with dm.cdsIncluirClientes do
begin
dm.Conexao.StartTransaction(TD);
params.ParamByName(´NOME´).AsString := edtNome.Text;
params.ParamByName(´ENDERECO´).AsString := edtEndereco.Text;
params.ParamByName(´BAIRRO´).AsString := edtBairro.Text;
params.ParamByName(´CIDADE´).AsString := edtCidade.Text;
params.ParamByName(´ESTADO´).AsString := edtEstado.Text;
params.ParamByName(´CEP´).AsString := mskedtCep.Text;
params.ParamByName(´TELEFONE´).AsString := edtTelefone.Text;
params.ParamByName(´CELULAR´).AsString := edtCelular.Text;
params.ParamByName(´CONTATO´).AsString := edtContato.Text;
params.ParamByName(´TIPO´).AsString := cmbbxTipo.Text;
params.ParamByName(´CPF´).AsString := mskedtCpf.Text;
params.ParamByName(´CNPJ´).AsString := mskedtCnpj.Text;
params.ParamByName(´INSC_EST´).AsString := edtInscricao.Text;
params.ParamByName(´DATA´).AsDate := strtodate(mskedtData.Text);
params.ParamByName(´EMAIL´).AsString := edtEmail.Text;
execute;
MessageDlg(´O clinte ´+edtNome.text+´ foi gravado com sucesso!!!´, mtInformation, [ mbOk ], 0 );
dm.Conexao.Commit(TD);
dbgridClientes.DataSource := dm.dsClientes;
dm.cdsClientes.Refresh;
dm.cdsClientes.Last;
desabilitaCampos(frmCadClientes);
end;
except
on E:Exception do
begin
dm.Conexao.Rollback(TD);
showmessage(E.Message);
end;
end;
end;

No botão alterar, tem:

btnAlterar.enabled := false;
habilitaCampos(frmCadClientes);
btnGravar.enabled := true;

Espero que agora dê pra vc entender melhor o que eu digitei.

Grato pela altenção.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar