Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/09/2004, 15:02
Avatar de parentesys
parentesys
 
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 235
Antigüedad: 21 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