| Usuario |
Como pasar como parámetro un recor... |
Desconocido
|
| Enviado - 1/10/2004 |
| |
Necesito pasar recordset desde un com+ a un asp... Genero el createobject para hacer referencia al com+ y a la función la cual me devuelve el recordset pero cuando recibo el recordset me da un error de falta objeto...y no se porque puede ser.
código com+
Option Explicit
' Implementa el Initialize y Terminate de la Clase bajo MTS
Implements ObjectControl
' Varibles privadas del módulo
Private mobjOC As ObjectContext ' Para mantener el ObjectContext para todo el Módulo
Private Const sConnection = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;Data Source=xxx"
' Generales
' //////////////////////////////////////////////////////////////////////////////////////////////////////
' Creación y Destrucción de la Clase
' //////////////////////////////////////////////////////////////////////////////////////////////////////
' Necesario para que funcione con el Simulador. Bajo MTS esto no se ejecuta.
Private Sub Class_Initialize()
ObjectControl_Activate
End Sub
' Necesario para que funcione con el Simulador. Bajo MTS esto no se ejecuta.
Private Sub Class_Terminate()
ObjectControl_Deactivate
End Sub
' Simula el Initialize bajo MTS
Private Sub ObjectControl_Activate()
Set mobjOC = GetObjectContext
End Sub
' Necesario para la Implementación del ObjectControl
Private Function ObjectControl_CanBePooled() As Boolean
ObjectControl_CanBePooled = True
End Function
' Simula el Terminate bajo MTS
Private Sub ObjectControl_Deactivate()
Set mobjOC = Nothing
End Sub
Public Function GetResult(ByVal sSQL As String, ByRef lRows As Long, ByRef sErrorMessage As String) As ADODB.Recordset
Dim oConn As New ADODB.Connection
Dim rsGetResult As New ADODB.Recordset
Dim sErrDesc As String
Dim m_sObjectName As Object
Dim oContext As ObjectContext
On Error GoTo Getresult_err
'Obtener un nexo al objectContext
Set oContext = GetObjectContext()
'Conectarse a la base de datos
oConn.Open sConnection
'Configurar el recordset de ADO.
With rsGetResult
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.ActiveConnection = oConn
.Open sSQL
lRows = .RecordCount 'filas obtenidas.
End With
'Retornar el recordset a la aplicación cliente.
Set GetResult = rsGetResult
'Hasta aquí todos están satisfechos, así que vuelve la información a disco.
If Not oContext Is Nothing Then
oContext.SetComplete
End If
If Not oConn Is Nothing Then
Set oConn = Nothing
End If
Exit Function
Getresult_err:
'Algo anduvo mal, así que hay hacer un alto.
If Not oContext Is Nothing Then
oContext.SetAbort
End If
If Not oConn Is Nothing Then
Set oConn = Nothing
End If
'Obtener detalles del error
Dim oError As ADODB.Error
For Each oError In oConn.Errors
sErrDesc = sErrDesc & "Error" & CStr(oError.Number) & ": " & oError.Description & vbCrLf
Next oError
'Limpiar
On Error Resume Next
Set oConn = Nothing
Set rsGetResult = Nothing
'Pasarle el error a la aplicación cliente
sErrorMessage = sErrDesc
App.LogEvent m_sObjectName & ".GetResult" & vbCrLf & sErrDesc, vbLogEventTypeError
End Function
codigo asp
dim sSQL,lColumnas,sError,dDatos,rsGetResult
'Dim rsGetResult As ADODB.Recordset
Set rsGetResult = createObject("ADODB.Recordset")
set dDatos = createObject("vbTGetRecordset.vbclsGetRecordset")
sSQL = "select * from products"
set rsGetResult = dDatos.GetResult(
do until not rsGetResult.EOF
Response.Write(rsGetResult.Fields(0))
loop
|
| |
|
|
|