
08/09/2004, 15:02
|
 | | | 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 |