Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fauze

Travar tabela

Recommended Posts

Olá pessoal,

 

Estou com um problema e preciso de uma ajuda:

Tenho que travar a tabela para executar um procedimento, mas da maneira que fiz está me trazendo problema, abaixo a rotina.

Tem me dado muito problema, se por algum motivo não libera, aí ninguém consegue fazer nada, só entrando no banco e trocando o valor da variavel.

Se alguém tiver uma sujestão para resolver o problema, eu agradeço...

Private Sub cmdConfirma_Click()Dim Sql As String, nTenta As Integer      fEndereco = ""      Do	  nTenta = nTenta + 1	  Sql = "Select * From config"	  rstConfig.Open Sql, cnn, adOpenKeyset, adLockOptimistic	  If rstConfig!trava = "0" Then[color="#FF0000"]Nesse momento eu mudo o valor dessa variavel para "1" [/color] 		 rstConfig!trava = "1"		 rstConfig.Update		 rstConfig.Close		 		 fEndereco = CriaCodigo(fEndereco, "movimento")		 Exit Do	  	  End If	  If nTenta > 2 Then		 MsgBox "Tentativa de gerar documento falhou ! Entre em contato com o administrador !", , "Atenção !"		 rstConfig.Close		 Exit Sub	  	  End If	  	  rstConfig.Close      Loop      txtAutenticacao.Text = txtAutenticacao.Text & " " & fEndereco & v1tipo      Call Grava      lEdit = True   cmdSair.Enabled = False   cmdAutenticar.Enabled = True   cmdDescarregar.Enabled = True   cmdAutenticar.SetFocus   cmdConfirma.Enabled = False   txtCodigo.Enabled = False   txtBloco1.Enabled = False   txtBloco2.Enabled = False   txtBloco3.Enabled = False   txtBloco4.Enabled = False   txtDv1.Enabled = False   txtDv2.Enabled = False   txtDv3.Enabled = False   txtDv4.Enabled = False   End Sub
Public Function CriaCodigo(cNada, cAlias)Dim rstMovimento As New ADODB.RecordsetDim Ok As BooleanDim Criterio As StringDim NovoCodigo As LongDim Sql As String      Sql = "Select * From config"   rstConfig.Open Sql, cnn, adOpenKeyset, adLockOptimistic      Ok = True      If Right(Trim(rstConfig!endereco), 2) = Right(Year(Date), 2) Then  'Dentro do mesmo ano	  While Ok		 ' Pega o código existente		 CriaCodigo = Mid(rstConfig!endereco, 1, Len(Trim(rstConfig!endereco)) - 2) & Right(Year(Date), 2)		 ' Cria um novo código		 NovoCodigo = Mid(rstConfig!endereco, 1, Len(Trim(rstConfig!endereco)) - 2)		 ' Soma +1		 NovoCodigo = NovoCodigo + 1		 ' Guarda no novo código		 rstConfig!endereco = NovoCodigo & Right(Year(Date), 2)		 rstConfig.Update		 ' Pesquisa se já foi usado, se já foi, faz o loop, se não, escapa e procegue		 If cAlias = "movimento" Then			Sql = "Select * From movimento "			Sql = Sql & "Where endereco = '" & CriaCodigo & "'"			rstMovimento.Open Sql, cnn, adOpenKeyset, adLockOptimistic'			MsgBox "olá o código criado foi " & CriaCodigo			If rstMovimento.EOF Then[color="#FF0000"]E libero aqui  [/color]			   rstConfig!trava = "0"			   rstConfig.Update			   rstConfig.Close			   Ok = False						End If			rstMovimento.Close					 End If		 	  Wend      Else	'Virou o ano	  rstConfig!endereco = "1" & Right(Year(Date), 2)	  While Ok		 ' Pega o código existente		 CriaCodigo = Mid(rstConfig!endereco, 1, Len(Trim(rstConfig!endereco)) - 2) & Right(Year(Date), 2)		 ' Cria um novo código		 NovoCodigo = Mid(rstConfig!endereco, 1, Len(Trim(rstConfig!endereco)) - 2)		 ' Soma +1		 NovoCodigo = NovoCodigo + 1		 ' Guarda no novo código		 rstConfig!endereco = NovoCodigo & Right(Year(Date), 2)		 rstConfig.Update		 ' Pesquisa se já foi usado, se já foi, faz o loop, se não, escapa e procegue		 If cAlias = "movimento" Then			Sql = "Select * From movimento "			Sql = Sql & "Where endereco = '" & NovoCodigo & "'"			rstMovimento.Open Sql, cnn, adOpenKeyset, adLockOptimistic'			MsgBox "olá o código criado foi " & CriaCodigo			If rstMovimento.EOF Then[color="#FF0000"]E libero aqui  [/color]			   rstConfig!trava = "0"			   rstConfig.Update			   rstConfig.Close			   Ok = False						End If			rstMovimento.Close					 End If		 	  Wend      End If   End Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,Acho que ficou meio confuso meu problema, é o seguinte, existe uma variavel de tabela que se chama trava, o valor dela é (zero), quado preciso ficar exclusivo mudo o valor dela para (um), e em seguida devolvo o valor (zero) para liberar. O problema é que por algum motivo que eu não sei o valor não muda para (zero) e aí cria-se o maior problema, como vcs podem notar no evento do cmdConfirma_Click.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.