El Guru Programador
Usuario DESCONOCIDO | Registrate Gratis | Usuarios Registrados
Foro de ASP/ASP.NET
Foros del Guru > ASP/ASP.NET
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
 
 

 

Contactos myStudio Network