Atualizaçao de dados na tabela

Delphi

23/06/2005

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

Curtidas 0

Respostas

Edilcimar

Edilcimar

23/06/2005

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.


GOSTEI 0
Roger1976

Roger1976

23/06/2005

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.


GOSTEI 0
POSTAR