Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/02/2012, 06:59
Avatar de pcarvajal
pcarvajal
 
Fecha de Ingreso: enero-2002
Mensajes: 701
Antigüedad: 22 años, 10 meses
Puntos: 8
ASP+DLL+SP: Item cannot be found in the collection corresponding to the requested...

Tengo una pagina asp que instancia una componente que a su vez consulta un sp que retorna valores.

Pues bien, si ejecuto el SP desde el Analizador de Consultas con parámetros en duro, arroja resultados.

Si ejecuto la componente desde Visual, con parametros en duro, arroja resultados. (o sea, la comunicacion DLL-SQL, funciona)

Ahora, si desde ASP le paso parámetros a la componente, no me arroja ningún resultado. Es más, me arroja el siguiente error:

Cita:
Item cannot be found in the collection corresponding to the requested name or ordinal.
Estoy segurísimo de que los campos que estoy consultando existan. Le he dado vueltas y no he logrado resolverlo.

Les dejo los códigos por si pueden hecharme una manito por favor.

ASP
Código PHP:
    Dim Rs
    
    Set Rs 
Server.CreateObject("ADODB.Recordset")
        
Set oCartolaDAO Server.CreateObject("Security_TEFAM.CartolaDAO")
    
    
call oCartolaDAO.iniciar    

    
    
If Not oCartolaDAO.obtenerS("1/5/2012""2/15/2012",01,"96655860-1"Rsthen
            Response
.Write("Error al obtener cartola: " oCartolaDAO.sMensajeError)
        
response.end
        End 
If

    if 
not Rs.EOF then
        response
.write  Rs("CtaOrigen") & "|"
    
end if    

    
oCartolaDAO.finalizar
    Set Rs 
Nothing 
VB
Código PHP:
Public Function obtenerS_
                        FechaDesde 
As String_
                        FechaHasta 
As String_
                        TipoTransaccion 
As Integer_
                        IdEstadoTransferencia 
As Integer_
                        TipoConsulta 
As Integer_
                        RutEmpresa 
As String_
                        rs 
As Variant) As Boolean

On Error GoTo 
Catch

   
    
Dim oCmd As ADODB.Command
    Set oCmd 
= New ADODB.Command
    oCmd
.CommandType adCmdStoredProc
    oCmd
.CommandText "Usp_TEFAM_CartolaObtenerS"
    
oCmd.ActiveConnection oConnection_
    
If oConnection_ Is Nothing Then
        Me
.set_iError = -1
        Me
.set_sMensajeError "Conección cerrada, inicialice "
        
Exit Function
    
End If
    
    
Dim f1f2aux() As String
    aux 
Split(FechaDesde"/")
    If 
aux(0) < 10 Then aux(0) = "0" aux(0)
    If 
aux(1) < 10 Then aux(1) = "0" aux(1)
    
f1 aux(2) & "-" aux(0) & "-" aux(1)
    
aux Split(FechaHasta"/")
    If 
aux(0) < 10 Then aux(0) = "0" aux(0)
    If 
aux(1) < 10 Then aux(1) = "0" aux(1)
    
f2 aux(2) & "-" aux(0) & "-" aux(1)
    
    
oCmd.Parameters("@FechaDesde").value f1
    oCmd
.Parameters("@FechaHasta").value f2
    
    
'oCmd.Parameters("@FechaDesde").value = FechaDesde
    '
oCmd.Parameters("@FechaHasta").value FechaHasta
    
    
If TipoTransaccion 0 Then
        oCmd
.Parameters("@TipoTransaccion").value Null
    
Else
        
oCmd.Parameters("@TipoTransaccion").value TipoTransaccion
    End 
If
    
    If 
IdEstadoTransferencia 0 Then
        oCmd
.Parameters("@IdEstadoTransferencia").value Null
    
Else
        
oCmd.Parameters("@IdEstadoTransferencia").value IdEstadoTransferencia
    End 
If
    
    
    
oCmd.Parameters("@TipoConsulta").value TipoConsulta
    oCmd
.Parameters("@RutEmpresa").value RutEmpresa
        
    Set rs 
oCmd.Execute
       
    obtenerS 
True
    
Exit Function
    
Catch:
     
Me.set_iError Err.Number
     Me
.set_sMensajeError Err.Description
     obtenerS 
False
     
End 
Function 
SP
Código PHP:
CREATE PROCEDURE [dbo].[Usp_TEFAM_CartolaObtenerS]
(
    @
FechaDesde            datetime
    
,@FechaHasta        datetime
    
,@TipoTransaccion    int
    
,@IdEstadoTransferencia int
    
,@TipoConsulta        int
    
,@RutEmpresa        Varchar(15)
)
AS
BEGIN
    SET NOCOUNT ON
    
---------------------------------
    --@
TipoConsulta --> COUNT  --
    --          
--> SELECT --
    ---------------------------------
    
SET @FechaHasta DATEADD(DD,1,@FechaHasta)

    IF @
TipoConsulta 1
    BEGIN
        SELECT          dbo
.TEFAM_Transferencia.CtaOrigen
                    
dbo.TEFAM_Transferencia.NombreDestino
                    
dbo.TEFAM_Banco.Nombre AS BancoDestino
                    
dbo.TEFAM_Transferencia.MontoTRX    
                    
dbo.TEFAM_Transferencia.IdEstadoTransferencia
                    
dbo.TEFAM_Transferencia.IdTipoTrfTransferencia
                    
dbo.TEFAM_EstadoTransferencia.Nombre AS EstadoTransferencia
                    
dbo.TEFAM_TipoTrfTransferencia.Nombre AS TipoTransferencia
                    
CONVERT(VARCHAR,dbo.TEFAM_Transferencia.FechaCreacion,105) + ' ' CONVERT(VARCHAR,dbo.TEFAM_Transferencia.FechaCreacion,108) AS  FechaUsuarioNormal
                    
dbo.TEFAM_Transferencia.IdTransferencia
                    
ISNULL(dbo.TEFAM_Transferencia.IdNominaCabecera,0) AS IdNominaCabecera
                    
dbo.TEFAM_Transferencia.MotivoTransferencia AS MotivoTransferencia
        FROM       dbo
.TEFAM_Transferencia INNER JOIN
                   dbo
.TEFAM_Banco ON dbo.TEFAM_Transferencia.IdBancoDestino dbo.TEFAM_Banco.IdBanco 
                    INNER JOIN   dbo
.TEFAM_EstadoTransferencia 
                        ON dbo
.TEFAM_Transferencia.IdEstadoTransferencia dbo.TEFAM_EstadoTransferencia.IdEstadoTransferencia INNER JOIN
                   dbo
.TEFAM_TipoTrfTransferencia ON dbo.TEFAM_Transferencia.IdTipoTrfTransferencia dbo.TEFAM_TipoTrfTransferencia.IdTipoTrfTransferencia
        WHERE        FechaCreacion BETWEEN 
@FechaDesde AND @FechaHasta 
                    
AND ((@IdEstadoTransferencia is null) OR (@IdEstadoTransferencia IS NOT NULL AND @IdEstadoTransferencia            TEFAM_EstadoTransferencia.IdEstadoTransferencia))
                    AND ((@
TipoTransaccion        is null) OR (@TipoTransaccion            IS NOT NULL AND @TipoTransaccion            TEFAM_TipoTrfTransferencia.IdTipoTrfTransferencia))
                    AND 
dbo.TEFAM_Transferencia.RutEmpresa = @RutEmpresa        
                    
AND dbo.TEFAM_Transferencia.IdEstadoTransferencia <> 9
    END
    
ELSE
    
BEGIN
        SELECT     cuantos
=count(dbo.TEFAM_Transferencia.CtaOrigen
        
FROM       dbo.TEFAM_Transferencia INNER JOIN
                   dbo
.TEFAM_Banco ON dbo.TEFAM_Transferencia.IdBancoDestino dbo.TEFAM_Banco.IdBanco INNER JOIN
                   dbo
.TEFAM_EstadoTransferencia ON dbo.TEFAM_Transferencia.IdEstadoTransferencia dbo.TEFAM_EstadoTransferencia.IdEstadoTransferencia INNER JOIN
                   dbo
.TEFAM_TipoTrfTransferencia ON dbo.TEFAM_Transferencia.IdTipoTrfTransferencia dbo.TEFAM_TipoTrfTransferencia.IdTipoTrfTransferencia
        WHERE        FechaCreacion BETWEEN 
@FechaDesde AND @FechaHasta 
                    
AND ((@IdEstadoTransferencia is null) OR (@IdEstadoTransferencia            IS NOT NULL AND @IdEstadoTransferencia TEFAM_EstadoTransferencia.IdEstadoTransferencia))
                    AND ((@
TipoTransaccion    is null) OR (@TipoTransaccion            IS NOT NULL AND @TipoTransaccion            TEFAM_TipoTrfTransferencia.IdTipoTrfTransferencia))                    AND dbo.TEFAM_Transferencia.RutEmpresa = @RutEmpresa        
                    
AND dbo.TEFAM_Transferencia.IdEstadoTransferencia <> 9
    END        

END