Problema com transação e exception
coloquei transação em meu programa feito em delphi 7 e interase 6
e não consigo receber a exception do inteberbase nas que coloquei transação (so consigo receber com programa em execução pelo delphi)
muito obrigado
Ronaldo
e não consigo receber a exception do inteberbase nas que coloquei transação (so consigo receber com programa em execução pelo delphi)
muito obrigado
Ronaldo
Ronaldo.cutu
Curtidas 0
Respostas
Afarias
29/08/2003
Pode explicar melhor qual seu problema?!
GOSTEI 0
Ronaldo.cutu
29/08/2003
[b:1a55326807]var
TransDes:TTransactionDesc;[/b:1a55326807]
begin
try
[b:1a55326807] TransDes.TransactionID := 9;[/b:1a55326807]
[b:1a55326807] TransDes.IsolationLevel := xilREADCOMMITTED;[/b:1a55326807]
D_controle.Conexao_controle.StartTransaction(TransDes);
D_Controle.I_EST_MAT_PRIMA.Params.ParamValues[´data´]:= DATETOSTR(data.Date);
D_Controle.I_EST_MAT_PRIMA.Params.ParamValues[´cod_mat_prima´]:= mat_pr.Text;
D_Controle.I_EST_MAT_PRIMA.Params.ParamValues[´quant´]:= quant.text;
D_Controle.I_EST_MAT_PRIMA.Params.ParamValues[´situacao´]:= situacao2;
D_Controle.I_EST_MAT_PRIMA.Params.ParamValues[´cod_fornecedor´]:= cod_fornecedor.Text;
D_Controle.I_EST_MAT_PRIMA.ExecProc;
[b:1a55326807] try
D_controle.Conexao_controle.Commit(TransDes);
except
D_controle.Conexao_controle.Rollback(TransDes);[/b:1a55326807]
quando não tinha os itens em negrito aparecia as exception do banco
mas não tinha controle de tansação
grato
Ronaldo
TransDes:TTransactionDesc;[/b:1a55326807]
begin
try
[b:1a55326807] TransDes.TransactionID := 9;[/b:1a55326807]
[b:1a55326807] TransDes.IsolationLevel := xilREADCOMMITTED;[/b:1a55326807]
D_controle.Conexao_controle.StartTransaction(TransDes);
D_Controle.I_EST_MAT_PRIMA.Params.ParamValues[´data´]:= DATETOSTR(data.Date);
D_Controle.I_EST_MAT_PRIMA.Params.ParamValues[´cod_mat_prima´]:= mat_pr.Text;
D_Controle.I_EST_MAT_PRIMA.Params.ParamValues[´quant´]:= quant.text;
D_Controle.I_EST_MAT_PRIMA.Params.ParamValues[´situacao´]:= situacao2;
D_Controle.I_EST_MAT_PRIMA.Params.ParamValues[´cod_fornecedor´]:= cod_fornecedor.Text;
D_Controle.I_EST_MAT_PRIMA.ExecProc;
[b:1a55326807] try
D_controle.Conexao_controle.Commit(TransDes);
except
D_controle.Conexao_controle.Rollback(TransDes);[/b:1a55326807]
quando não tinha os itens em negrito aparecia as exception do banco
mas não tinha controle de tansação
grato
Ronaldo
GOSTEI 0
Afarias
29/08/2003
bom, primeiro seu EXECPROC deveria estar dentro do bloco TRY pois é muito mais fácil vc ter um erro nesta linha q no exception. segundo, se vc quer ver a exceção, dentro do except, vc deve tratar a exceção dando e mostrar uma mensagem de erro ou simplesmente chamar a exceção (RAISE), ex::
try
D_Controle.I_EST_MAT_PRIMA.ExecProc;
D_controle.Conexao_controle.Commit(TransDes);
except
D_controle.Conexao_controle.Rollback(TransDes);
raise; // <-- adicione está linha!
end;
ou ::
try
D_Controle.I_EST_MAT_PRIMA.ExecProc;
D_controle.Conexao_controle.Commit(TransDes);
except
on E: Exception do
begin
D_controle.Conexao_controle.Rollback(TransDes);
ShowMessage(E.message);
end;
end;
T+
try
D_Controle.I_EST_MAT_PRIMA.ExecProc;
D_controle.Conexao_controle.Commit(TransDes);
except
D_controle.Conexao_controle.Rollback(TransDes);
raise; // <-- adicione está linha!
end;
ou ::
try
D_Controle.I_EST_MAT_PRIMA.ExecProc;
D_controle.Conexao_controle.Commit(TransDes);
except
on E: Exception do
begin
D_controle.Conexao_controle.Rollback(TransDes);
ShowMessage(E.message);
end;
end;
T+
GOSTEI 0