USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Transações de Dados
JDBasic
SIMÃO DIAS
SE - BRASIL
Postada em 10/07/2005 21:35 hs         
Boa-noite, uso MSDE, minhas transações de dados tem o controle de transação tipo assim:

SQL="UPDATE blablaba"
conn.bengintrans
conn.execute SQL
conn.commitrans

O problema é: Quando ocorre um erro nessa transação, como seria o tratamento de erro, para dar o Rollbacktrans?

Seria assim:

On error goto ErroTrans

SQL="UPDATE blablaba"
conn.bengintrans
conn.execute SQL
conn.commitrans

ErroTrans:
conn.Rollbacktrans

Mas assim ele dar um erro dizendo que não há conexões ativas, como faço o tratamento corretamente? Obrigado.
 
     
Sandro
não registrado
ENUNCIADA !
Postada em 10/07/2005 22:09 hs   
Olá,
 
Eu uso um método muito simples para resolver isso, crio uma variável boolean e faço o teste na rotina de tratamento de erros:
 
Private Sub Atualiza()
 
On Error Goto TrataErro
 
Dim Trans as Boolean
Dim SQL as String
 
Sql = "Update ....."
 
Conn.BeginTrans
Trans = True
 
Conn.Execute Sql
 
Conn.CommitTrans
Trans = False
 
Exit Sub
 
TrataErro:
    If Trans Then
        Conn.RollbBacktrans
    End If
 
    Msgbox "Erro " & err.Number & Chr$(13) & Chr$(10) & Err.Description,16,"Atenção"
 
End Sub
 
Quando eu abro uma transação, eu coloco a variável em True, executo o comando e tento concluir a transação. Se ocorrer um erro, o fluxo da rotina é desviado para a subrotina TrataErro, lá eu verifico se a variável é True, se for, Rollbacktrans nela.
 
um abraço,
Sandro.
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página