MECANISMO DE BANCO DE DADOS INTERROMPEU

MARIOBOARI 27/05/2016 08:10:58
#462633
Prezados amigos, bom dia a todos! Mais uma vez, venho recorrer à ajuda dos amigos.

Estou com o seguinte problema, tenho algumas linhas para gerenciamento em uma tabela do ACCESS, quando rodo cada conjunto separado, funciona e quando rodo um em sequencia do outro dá a seguinte mensagem de erro: [Ô]O mecanismo de banco de dados Microsoft Jet interrompeu o processo porque você e outro usuário estão tentando alterar os mesmos dados ao mesmo tempo[Ô], segue os comandos que estou usando:

Primeira execução ->

Private Sub montardz1()

Dim i As Integer

For i = 1 To 4

Dim con1 = New OleDbConnection([Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & My.Application.Info.DirectoryPath & [Ô]\Banco.MDB[Ô])
Dim StrSQL As String = Nothing
StrSQL = [Ô]INSERT INTO dados SELECT * FROM matriz[Ô]
Dim cmd As New OleDbCommand(StrSQL, con1)

Dim AlterarSQL As String = Nothing
AlterarSQL = [Ô]UPDATE DADOS SET dz1 = [Ô] & i & [Ô] WHERE dz1 = [ô]0[ô][Ô]
Dim cmd1 As New OleDbCommand(AlterarSQL, con1)
con1.Open()
cmd.ExecuteNonQuery()
cmd1.ExecuteNonQuery()

Next i

End Sub

Segunda execução ->

Private Sub montardz3()


Dim i As Integer

For i = 6 To 8

Dim con3 = New OleDbConnection([Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & My.Application.Info.DirectoryPath & [Ô]\Banco.MDB[Ô])

Dim StrSQL As String = Nothing
StrSQL = [Ô]INSERT INTO dados SELECT * FROM matriz[Ô]
Dim cmd As New OleDbCommand(StrSQL, con3)

Dim AlterarSQL As String = Nothing
AlterarSQL = [Ô]UPDATE DADOS SET dz3 = [Ô] & i & [Ô] WHERE dz3 = [ô]0[ô][Ô]
Dim cmd6 As New OleDbCommand(AlterarSQL, con3)
con3.Open()
cmd.ExecuteNonQuery()
cmd6.ExecuteNonQuery()

Dim deletar4 As String
deletar4 = [Ô]delete from dados where dz1 like [ô]0[ô][Ô]
Dim DEL4 As New OleDbCommand(deletar4, con3)
DEL4.ExecuteNonQuery()


Next i


End Sub


Obrigado a todos!
KERPLUNK 27/05/2016 09:56:34
#462634
Seria melhor colocar a conexão antes do for não dentro dele. Conecte normalmente e depois execute as queries.
JABA 27/05/2016 13:23:55
#462644
Resposta escolhida
Você está usando várias instâncias (New OleDbConnection) de conexões para trabalhar com o banco. Por que não cria apenas uma e repassa-a para os objetos que necessitam dela?

MARIOBOARI 30/05/2016 21:16:19
#462787
JABA, Gostei da ideia, ficou melhor e funcionou perfeitamente. Obrigado pela ajuda.
Tópico encerrado , respostas não são mais permitidas