Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bloqueo

0 views
Skip to first unread message

Carmelo Enrique Gonzalez

unread,
Dec 30, 2009, 8:56:18 AM12/30/09
to
Hola amigos soy nuevo en visual basic 2008, y se me presenta el siguiente
inconveniente. Al momento de guardar la informaci�n no puedo realizar una
consulta a la tabla que estoy actualizando. A continuaci�n les escribo el
c�digo que utilizo
Using sqlCon As New SqlConnection(cCadenaDeConexion)
sqlCon.Open()
Dim cmd As SqlCommand
Dim tran As SqlTransaction = sqlCon.BeginTransaction
Try
cdContador.Fill(dtsContador, "spa_Contador")
nContador =
IIf(IsDBNull(dtsContador.Tables("spa_Contador").Rows(nPos).Item("Adm_Caja")),
0, dtsContador.Tables("spa_Contador").Rows(nPos).Item("Adm_Caja")) + 1

sCadSQL = "UPDATE spa_Contador " & _
"SET Adm_Caja = @Adm_Caja " & _
"WHERE IDContador = @IDContador"

cmd = New SqlCommand(sCadSQL, sqlCon)
cmd.Transaction = tran

'Asigna el codigo
dtsCajas.Clear()
cdCajas.Fill(dtsCajas, "Adm_Caja")
cCodigo = LlenarCadena(nContador, 4, "0", "",
dtsCajas, "Adm_Caja", "CajaID")

'Carga los parametros
With cmd
.Parameters.AddWithValue("@IDContador", 1)
.Parameters.AddWithValue("@Adm_Caja",
CDbl(cCodigo))
End With

'ejecuta la insercion
cmd.ExecuteNonQuery()
EL PROBLEMA LO TENGO AQU�. POR EJEMPLO YO COLOQUE AQU� UN PUNTO DE
INTERRUPCION Y TRATE DE ENTRAR DESDE OTRO EQUIPO AL MODULO AL MOMENTO DE
CARGAR ME DICE QUE SE AGOTA EL TIPO Y NO ENTRA QUE PUEDO HACER..

'Carga los parametros de la consulta
sCadSQL = "INSERT INTO Adm_Caja " & _
"(CajaID, Caja)" & _
"VALUES (@CajaID, @Caja)"

cmd = New SqlCommand(sCadSQL, sqlCon)
cmd.Transaction = tran
'Carga los parametros
With cmd
.Parameters.AddWithValue("@CajaID", cCodigo)
.Parameters.AddWithValue("@Caja",
txtNombre.Text.Trim)
End With

'ejecuta la insercion
cmd.ExecuteNonQuery()

'graba
tran.Commit()

Catch ex As Exception
tran.Rollback()
MsgBox(ex.Message, MsgBoxStyle.Information, "Error
del sistema")
Finally
dtsCajas.Clear()
cdCajas.Fill(dtsCajas, "Adm_Caja")
If Not bError Then
cbCodigo.Text = ""
mnuCancelar_Click(sender, e)
cbCodigo.Text = cCodigo
Control("Agregar caja", cCodigo, cDescripcion,
"")
End If
End Try
End If
End Using

Quiero que al momento de guardar otros usuarios puedan acceder a la tabla
sin problemas y no esperar que termine que guardar para poder tener
acceso...

Gracias por su ayuda

Gustavo Cantero

unread,
Dec 30, 2009, 9:15:30 AM12/30/09
to
Carmelo:
Parecer�a ser un problema de bloqueos, te recomiendo este
art�culo donde explica los distintos tipos de transacciones y los tipos
de "isolation" (aislamiento) de cada uno:

http://www.programandoamedianoche.com/2009/04/transacciones-y-modos-de-a
islamiento-en-sql-server-y-adonet/

Suerte!

Gustavo A. Cantero
Scientia� Soluciones Inform�ticas
MCP - MCSD - MCTS - MCPD
http://www.scientia.com.ar
http://www.programandoamedianoche.com
http://foro.scientia.com.ar

-----Mensaje original-----
De: Carmelo Enrique Gonzalez [mailto:gonzale...@hotmail.com]
Expuesto a las: Mi�rcoles, 30 de Diciembre de 2009 10:56 a.m.
Expuesto en: microsoft.public.es.sqlserver
Conversaci�n: Bloqueo
Asunto: Bloqueo

Maxi Accotto

unread,
Jan 1, 2010, 11:36:37 PM1/1/10
to
Carmelo a esto se los llama Bloqueos y hay distintos tipos, no todos ellos
bloquean la tabla por completo.
Revise los links que le pasaron y lea sobre los loqueos en SQL server para
entender su funcionamiento.

Una forma de disminuirlos en un update es que en el where haya indices
adecuados

--

------------------------------------------------
Maxi Accotto
MVP en SQL Server
http://blog.maxiaccotto.com
--------------------------------------------------

"Carmelo Enrique Gonzalez" <gonzale...@hotmail.com> wrote in message
news:2EAAAE04-0F77-4D64...@microsoft.com...

0 new messages