GARANTIR DESCONTO

Fórum Problema com transação e exception #38416

29/08/2003

0

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


Ronaldo.cutu

Ronaldo.cutu

Responder

Posts

29/08/2003

Afarias

Pode explicar melhor qual seu problema?!


Responder

Gostei + 0

29/08/2003

Ronaldo.cutu

[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


Responder

Gostei + 0

29/08/2003

Afarias

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+


Responder

Gostei + 0

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

Aceitar