MECANISMO DE BANCO DE DADOS INTERROMPEU
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!
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!
Seria melhor colocar a conexão antes do for não dentro dele. Conecte normalmente e depois execute as queries.
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?
JABA, Gostei da ideia, ficou melhor e funcionou perfeitamente. Obrigado pela ajuda.
Tópico encerrado , respostas não são mais permitidas