Dh-00 0 Denunciar post Postado Julho 7, 2009 Tentei implementar alguns códigos de transações que achei na internet, mas não obtive sucesso. Gostaria de saber se alguem tem algum exemplo de como se trabalhar com transações utilizando vb.net + access. Estou utilizando vb express 2008 + access 2003 + oledb Valeu Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Julho 7, 2009 Movido Plataforma .NET http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Plataforma .NET » Windows Applications De uma olhada nesse artigo: http://www.vb-helper.com/howto_net_db_transaction.html Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Dh-00 0 Denunciar post Postado Julho 8, 2009 Movido Plataforma .NET http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Plataforma .NET » Windows Applications De uma olhada nesse artigo: http://www.vb-helper.com/howto_net_db_transaction.html Abraços... quintelab, consegui fazer o commit, porem estou com problemas no rollback, quando coloco ele dentro do bloco de exceção o compilador da erro. Dim trans As OleDb.OleDbTransaction = conn.BeginTransaction(IsolationLevel.ReadCommitted) Dim cmd_insert = New OleDb.OleDbCommand(sql, conn, trans) 'monta os paremtros With cmd_insert.Parameters .Add(New OleDb.OleDbParameter("@ID_ESCOLA", v_id_escola)) .Add(New OleDb.OleDbParameter("@ANO_LETIVO", txt_ano.Text.Trim)) .Add(New OleDb.OleDbParameter("@DSC_ANO_LETIVO", txt_desc.Text.Trim)) .Add(New OleDb.OleDbParameter("@DSC_TURMA", txt_turma.Text.Trim)) .Add(New OleDb.OleDbParameter("@ID_TIPO_TURMA", v_id_turma)) .Add(New OleDb.OleDbParameter("@DSC_SALA", txt_sala.Text.Trim)) .Add(New OleDb.OleDbParameter("@ID_TIPO_CURSO", v_id_curso)) .Add(New OleDb.OleDbParameter("@ID_TIPO_SERIE", v_id_serie)) .Add(New OleDb.OleDbParameter("@ID_TIPO_TURNO", v_id_turno)) .Add(New OleDb.OleDbParameter("@USUARIO", Frm_principal.lbl_usuario.Text.Trim)) End With cmd_insert.ExecuteNonQuery() trans.Commit() MsgBox("Cadastro de nova sala realizado com sucesso!", MsgBoxStyle.Information, "Aviso!") Limpa_campos() End If Catch ex As Exception MsgBox("Houve um erro no cadastro da nova turma!" + Chr(13) + ex.Message) trans.rollback() --> Diz que este metodo nao é valido Finally If (conn.State = ConnectionState.Open) Then conn.Close() End If End Try abs Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Julho 8, 2009 Qual erro? Só aparece esta mensagem? Dei uma olhada no artigo aparentemente esta OK. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Dh-00 0 Denunciar post Postado Julho 8, 2009 Qual erro? Só aparece esta mensagem? Dei uma olhada no artigo aparentemente esta OK. Abraços... O erro da justamente no trecho de exception, diz que o metodo trans nao existe. Catch ex As Exception MsgBox("Houve um erro no cadastro da nova turma!" + Chr(13) + ex.Message) trans.rollback() --> Diz que este metodo nao é valido Aproveitando a deixa, gostaria de uma ajudinha em transações encadeadas, como faria elas: Exemplo: Classe 1 cria registro na tabela Classe 1 chama metodo da classe lib para processar o registro criado Gostaria de ter esse controle de transação, tanto na classe 1 quanto na classe LIB, ou seja, se alguma delas falhar deverá ser executado um rollback total do processamento. Fiz um teste passando a variavel trans como referencia para o metodo que quero processar na classe lib, mas nao deu certo. Preciso fazer isso em meu projeto, pois existem cenarios que deixam o banco muito inconsistente, pois o access efetua commit automatico do processamento.... Obrigado! abs Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Julho 8, 2009 La no artigo tem a opção de fazer o download do código fonte, faça isso e compare os códigos. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites