Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Una Opinion Profesional.

Estas en el tema de Una Opinion Profesional. en el foro de Bases de Datos General en Foros del Web. Esta es una clase que se encuentra dentro de una Dll. Miren como esta distribuido el codigo. Rem ********************************************* Rem * Modulo Administrador de Catalogo ...
  #1 (permalink)  
Antiguo 21/12/2002, 21:12
Avatar de coriadavid  
Fecha de Ingreso: mayo-2002
Ubicación: Buenos Aires Argentina
Mensajes: 74
Antigüedad: 22 años, 6 meses
Puntos: 0
Pregunta Una Opinion Profesional.

Esta es una clase que se encuentra dentro de una Dll. Miren como esta distribuido el codigo.

Rem *********************************************
Rem * Modulo Administrador de Catalogo *
Rem *********************************************

Dim cnn_Conexion As ADODB.Connection
Dim rst_catalogo As ADODB.Recordset
Dim rst_catalogoOF As ADODB.Recordset

Dim rst_mps As ADODB.Recordset
Dim rst_ccc As ADODB.Recordset
Dim rst_mcc As ADODB.Recordset
Dim rst_bcc As ADODB.Recordset

Public TipoProducto As Variant
Public CodigoProducto As Variant
Public titulodelproducto As Variant
Public Descripcion As Variant
Public PrecioenPesos As Variant
Public PrecioenDolares As Variant
Public Estado_Stock As Variant
Public Nombre_Imagen As Variant
Public Email_Session As Variant
Public Session_Activa As Variant
Public cantidad As Variant



Private Sub Class_Initialize()
On Error GoTo error
Set cnn_Conexion = New ADODB.Connection
cnn_Conexion.Open "dsn=carritodecompras"
Exit Sub
error:
Call Class_Terminate
End Sub
Private Sub Class_Terminate()

cnn_Conexion.Close
Set rst_catalogo = Nothing
Set rst_catalogoOF = Nothing

Set rst_mps = Nothing
Set rst_mcc = Nothing
Set cnn_Conexion = Nothing
End Sub
Public Function BorrarCarrito(ByVal clave As Variant)
On Error GoTo error
Set rst_bcc = New ADODB.Recordset
sql_string = "DELETE * FROM Tbl_Carrito WHERE Id_Operacion=" & clave
rst_bcc.Open sql_string, cnn_Conexion, adOpenStatic, adLockPessimistic
Set rst_bcc = Nothing
Exit Function
error:

End Function
Public Function MostrarCarrito() As ADODB.Recordset
On Error GoTo error
Set rst_mcc = New ADODB.Recordset
sql_string = "SELECT * FROM Tbl_Carrito WHERE Id_Session=" & Session_Activa
rst_mcc.Open sql_string, cnn_Conexion, adOpenStatic, adLockPessimistic
Set MostrarCarrito = rst_mcc
Exit Function
error:

End Function
Public Function Cargar_carrito()
On Error GoTo error
Set rst_ccc = New ADODB.Recordset
sql_string = "SELECT * FROM Tbl_carrito"
rst_ccc.Open sql_string, cnn_Conexion, adOpenKeyset, adLockPessimistic
rst_ccc.AddNew
rst_ccc("email_cliente") = Email_Session
rst_ccc("id_session") = Val(Session_Activa)
rst_ccc("Titulo_Producto") = titulodelproducto
rst_ccc("Precio_Pesos") = Val(PrecioenPesos)
rst_ccc("Precio_Dolares") = Val(PrecioenDolares)
rst_ccc("Cantidad") = Val(cantidad)
rst_ccc.Update
Set rst_ccc = Nothing
Exit Function
error:
End Function
Public Function MostrarCatalogo() As ADODB.Recordset
On Error GoTo error
Set rst_catalogo = New ADODB.Recordset
sql_string = "SELECT * FROM Tbl_Productos WHERE Id_Tipo_producto=" & Val(TipoProducto) & " " & "AND" & " " & "Stock=" & 1
rst_catalogo.Open sql_string, cnn_Conexion, adOpenStatic, adLockReadOnly
Set MostrarCatalogo = rst_catalogo
Exit Function
error:
End Function
Public Function MostrarCatalogoOfertas() As ADODB.Recordset
On Error GoTo error
Set rst_catalogoOF = New ADODB.Recordset
sql_string = "SELECT * FROM Tbl_Productos WHERE id_codigo_producto=" & Val(CodigoProducto)
rst_catalogoOF.Open sql_string, cnn_Conexion, adOpenStatic, adLockReadOnly
Set MostrarCatalogoOfertas = rst_catalogoOF
Exit Function
error:
End Function
Public Function Mostrar_Producto() As ADODB.Recordset
On Error GoTo error
Set rst_mps = New ADODB.Recordset
sql_string = "SELECT * FROM Tbl_Productos WHERE Id_Tipo_producto=" & Val(TipoProducto) & " " & "AND" & " " & "Id_codigo_Producto=" & Val(CodigoProducto)
rst_mps.Open sql_string, cnn_Conexion, adOpenStatic, adLockReadOnly
Set Mostrar_Producto = rst_mps
Exit Function
error:
End Function

Podran apreciar como esta estructurado..


Interfaces.
metodo inicio
metodo de terminar
demas metodos.

veran que los metodos que devuelven un recordset los recordset no tienen el .close

y veran que en el metodo terminar hago un close de la conexion y los nothing que corresponden.

pero faltan los .close de los recordset que fueron habiertos, y el tema esta ahi.....

cuando les coloco el .close a esos recordset, el sistema se cuelga, cuelga el IIS.

y no se p orque, alguien puede decirme porque puede estar pasando eso. Si la ejecuto asi , la dll funciona bien.

saludos a todos y gracias.

__________________
MicroNetwork
www.micronetwork.com.ar
Departamento de Programacion

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 23:16.