Exclusão utilizando um Exception
Aí galera, estou com um problema. Estou utilizando componentes da paleta DBExpress (SqlConnection e SqlQuery) e componentes da paleta data access(Datasetprovider,clientdataset e datasource) em um projeto que estou desenvolvendo. Pois bem, estou tentando excluir um registro via Excetpion, isto é, ele só excluíra o registro caso não seja gerado uma excessão pelo banco, mas, infelizmente, não está dando certo, a excessão não está sendo gerada. Abaixo estão os códigos que coloquei no botão de exclusão. Este DSP.Dataset.Delete que está aí é por que estou utilizando um form padrão. Se alguém souber o motivo, por favor, responda-me. Obrigado.
---------
try
if DSP.DataSet.RecordCount>0
then begin
MessageBeep(MB_ICONASTERISK);
if Application.MessageBox(´Deseja realmente excluir este registro?´,´Confirmação de Exclusão´,MB_YESNO)=IDYES
then begin
DSP.DataSet.Delete;
dm.CDSCidade.ApplyUpdates(-1);
MessageBeep(MB_ICONASTERISK);
Application.MessageBox(´Registro excluído com sucesso!´,´Informação do Sistema´,MB_OK);
end;
end;
Except
on E: exception do
begin
MessageBeep(MB_ICONASTERISK);
Application.MessageBox(´Exclusão não efetuada.Operação de exclusão inválida!´,´Informação do Sistema´,MB_OK);
DSP.Dataset.Close;
DSP.Dataset.open;
end;
end;
---------
try
if DSP.DataSet.RecordCount>0
then begin
MessageBeep(MB_ICONASTERISK);
if Application.MessageBox(´Deseja realmente excluir este registro?´,´Confirmação de Exclusão´,MB_YESNO)=IDYES
then begin
DSP.DataSet.Delete;
dm.CDSCidade.ApplyUpdates(-1);
MessageBeep(MB_ICONASTERISK);
Application.MessageBox(´Registro excluído com sucesso!´,´Informação do Sistema´,MB_OK);
end;
end;
Except
on E: exception do
begin
MessageBeep(MB_ICONASTERISK);
Application.MessageBox(´Exclusão não efetuada.Operação de exclusão inválida!´,´Informação do Sistema´,MB_OK);
DSP.Dataset.Close;
DSP.Dataset.open;
end;
end;
Ricardo Giordano
Curtidas 0
Respostas
Leandro_si
03/05/2004
dae td blz.. da uma olhada nesse odigo abaixo..
seria algo assim...
var t : TTransactionDesc;
begin
// dbExpress
try
t.IsolationLevel := xilREADCOMMITTED;
SQLConnection.StartTransaction( t );
// Aqui seriam feitos os updates, deletes e inserts
SQLConnection.Commit( t );
except
SQLConnection.Rollback( t );
end;
visite essa hp ak...
http://www.delphibr.com.br/artigos/transacoes.php
seria algo assim...
var t : TTransactionDesc;
begin
// dbExpress
try
t.IsolationLevel := xilREADCOMMITTED;
SQLConnection.StartTransaction( t );
// Aqui seriam feitos os updates, deletes e inserts
SQLConnection.Commit( t );
except
SQLConnection.Rollback( t );
end;
visite essa hp ak...
http://www.delphibr.com.br/artigos/transacoes.php
GOSTEI 0