Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Bloqueos en base de datos con Visual Basic

Estas en el tema de Bloqueos en base de datos con Visual Basic en el foro de Visual Basic clásico en Foros del Web. Hola a todos, tengo un problema de acceso a una base de datos SQL Server desde un componente en Visual Basic al cual llamo desde ...
  #1 (permalink)  
Antiguo 08/09/2004, 15:02
Avatar de parentesys  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 235
Antigüedad: 20 años, 7 meses
Puntos: 0
Bloqueos en base de datos con Visual Basic

Hola a todos, tengo un problema de acceso a una base de datos SQL Server desde un componente en Visual Basic al cual llamo desde un ASP.

El caso es que al hacer varias peticiones con el mismo componente a la base de datos teniendo varias sesiones activas de la página, hay bloqueos en la base de datos. Yo creo que puede ser por la forma en la que abro los cursores desde el componente. Me podríais ayudar, por favor?

Os paso el código de la función en Visual Basic que utilizo para abrir y declarar cursores...





Public Function ObtieneRecordset(ByVal sSQL As String) As ADODB.Recordset

' DEFINICION DE VARIABLES
' -----------------------
Dim conexion As ADODB.Connection
Dim rs As ADODB.Recordset
Dim nErr As Long
Dim sErr As String


' GESTION DE ERRORES
' ------------------
On Error GoTo ErrorHandler


' CONECTA CON LA BASE DE DATOS
' ----------------------------
Set conexion = New ADODB.Connection
conexion.CursorLocation = adUseServer
conexion.IsolationLevel = adXactCursorStability

conexion.Open CadenaConexion


' ABRE EL RECORDSET Y LO OPTIMIZA
' --------------------------------
Set rs = New ADODB.Recordset
Set rs.ActiveConnection = conexion
rs.CursorLocation = adUseClient
rs.LockType = adLockReadOnly
rs.CursorType = adOpenForwardOnly

rs.Open sSQL


' TODO HA IDO BIEN
' ----------------
Set ObtieneRecordset = rs


' CIERRA LA conexión a BASE DE DATOS
' ----------------------------------------------
Set rs.ActiveConnection = Nothing ' Desconecta el recordset
conexion.Close
Set conexion = Nothing

Exit Function


' GESTION DE ERRORES
' ------------------
ErrorHandler:

nErr = Err.Number
sErr = Err.Description

Resume NextLine

NextLine:

On Error Resume Next

conexion.Close
Set conexion = Nothing
On Error GoTo 0

' PROPAGA EL ERROR
' ----------------
Err.Raise nErr, "mComun", sErr


End Function
__________________
Administrador de :
givemefun.net
givemefun.org
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:43.