Warning: mssql_fetch_row () expects parameter 1 to be resource, boolean given - SQL

0

I do not know if you can help me or my question is not understood, I leave it to you in the same way, I have the following error:

  

Warning: mssql_fetch_row () expects parameter 1 to be resource, boolean   given in usr / home / FFFF / payment-card_paypal.php on line 111

The line itself is this:

/*************************************************
 * ACTUALIZAR DATOS GRABAR TRAS VOLVER PAGO PAYPAL
 * EXEC [dbo].[EnviosGrabarFormaDePago] 
 *************************************************/
/* Conectar con el procedimiento almacenado */
$stmt21       = mssql_init('EnviosGrabarFormaDePago');
/* Parametros pasados al procedimiento almacenado */
$ControlError = '';
$EnvioID      = NULL;
$FormaPago    = 37;
$FechaPago    = date("Ymd");
$referencia   = $_GET['tx'];
mssql_bind($stmt21, '@ControlError', $ControlError, SQLVARCHAR, true, false, 40);
mssql_bind($stmt21, '@EnvioID', $EnvioID, SQLINT1);
mssql_bind($stmt21, '@IdentificadorEnvio',$_GET['ie'],SQLVARCHAR,false,false,25);
mssql_bind($stmt21, '@FormaDePago', $FormaPago, SQLINT1);
mssql_bind($stmt21, '@FechaDePago', $FechaPago, SQLVARCHAR, false, false, 19);
mssql_bind($stmt21, '@ReferenciaPago', $referencia, SQLVARCHAR, false, false, 40);
mssql_bind($stmt21, '@MontoPago', $_GET['amt'], SQLFLT8);
/* Ejecutamos el procedimiento */
$resultado21 = mssql_execute($stmt21);
$row         = mssql_fetch_row($resultado21);  // Aqui esta el error 
/* Liberar los recursos */
mssql_free_statement($stmt21);

In my DB it is like this

ALTER PROCEDURE [dbo].[EnviosGrabarFormaDePago]
    -- Agregar los parámetros para el procedimiento almacenado aquí
    @ControlError           VARCHAR(max) OUTPUT,
    @EnvioID                INT,
    @IdentificadorEnvio     VARCHAR(25),
    @FormaDePago            INT,
    @FechaDePago            DATE,
    @ReferenciaPago         VARCHAR(40),
    @MontoPago              DECIMAL(10,2)

AS
BEGIN

    -- Evita que se devuelva el mensaje que muestra el recuento del número de filas afectadas 
    SET NOCOUNT ON;

    BEGIN TRANSACTION
    BEGIN TRY

        --INSERT INTO [dbo].[Prueba] ([Tipo],[Datos]) VALUES ('EnviosGrabarFormaDePago', '--------------------------------------')
        --INSERT INTO [dbo].[Prueba] ([Tipo],[Datos]) VALUES ('EnviosGrabarFormaDePago @EnvioID : ', CAST(@EnvioID AS varchar(10)))
        --INSERT INTO [dbo].[Prueba] ([Tipo],[Datos]) VALUES ('EnviosGrabarFormaDePago @IdentificadorEnvio : ', @IdentificadorEnvio)
        --INSERT INTO [dbo].[Prueba] ([Tipo],[Datos]) VALUES ('EnviosGrabarFormaDePago @FormaDePago : ', CAST(@FormaDePago AS varchar(10)))
        --INSERT INTO [dbo].[Prueba] ([Tipo],[Datos]) VALUES ('EnviosGrabarFormaDePago @ReferenciaPago : ', @ReferenciaPago)
        --INSERT INTO [dbo].[Prueba] ([Tipo],[Datos]) VALUES ('EnviosGrabarFormaDePago @MontoPago : ', CAST(@MontoPago AS varchar(10)))

        -- Inserte las declaraciones para el procedimiento aquí
        SET @ControlError = ''

        DECLARE @Comentario             VARCHAR(800)    = ''
        DECLARE @UsuariosSistemaID      TINYINT         = 1
        DECLARE @EstadoID               TINYINT         = 49
        DECLARE @TotalEnvio             DECIMAL(12,2)   = 0

        -- 36   TARJETA DE CREDITO
        -- 37   PAYPAL
        --  0   PAGO NO COMPLETADO / ERROR / CANCELADO

        IF @IdentificadorEnvio <> ''
        BEGIN 
            SELECT @EnvioID = EnvioID, @TotalEnvio = Total FROM Envios WHERE IdentificadorEnvio = @IdentificadorEnvio
        END

        IF @EnvioID <> 0
        BEGIN 
            SELECT @IdentificadorEnvio = IdentificadorEnvio, @TotalEnvio = Total FROM Envios WHERE EnvioID = @EnvioID 
        END

        --INSERT INTO [dbo].[Prueba] ([Tipo],[Datos]) VALUES ('EnviosGrabarFormaDePago @EnvioID Verificado : ', CAST(@EnvioID AS varchar(10)))

        IF @EnvioID <> 0 AND @FormaDePago <> 0
        BEGIN

            UPDATE Envios SET FormaDePago = @FormaDePago, FechaDePago = @FechaDePago, ReferenciaPago = @ReferenciaPago, MontoPago = @TotalEnvio 
                WHERE EnvioID = @EnvioID

            SET @Comentario = 'Registro de Pago (Referencia) - ' + RTRIM(LTRIM(@ReferenciaPago))
            SET @EstadoID = 49      -- 49   Registro de Pago
            --INSERT INTO [dbo].[Prueba] ([Tipo],[Datos]) VALUES ('EnviosGrabarFormaDePago @EnvioID <> 0 AND @FormaDePago <> 0 : ', @Comentario)

        END 

        --INSERT INTO [dbo].[Prueba] ([Tipo],[Datos]) VALUES ('EnviosGrabarFormaDePago @FormaDePago : ', CAST(@FormaDePago AS varchar(10)))

        IF @FormaDePago = 0
        BEGIN
            SET @EstadoID = 39      -- 39   Envío Anulado
            SET @Comentario = 'Envío Anulado - Registro el Pago'            
        END 

        IF @EnvioID <> 0
        BEGIN

            DECLARE @FechaEnviosSeguimientoInsert DATETIME = GETDATE()
            DECLARE @ActualizaEstadoEnvio         BIT      = 1
            EXECUTE [dbo].[EnviosSeguimientoInsert] @ControlError OUTPUT, @EnvioID, @Comentario, @UsuariosSistemaID, @EstadoID, @FechaEnviosSeguimientoInsert, @ActualizaEstadoEnvio

            IF @MontoPago <> @TotalEnvio
            BEGIN
                SET @Comentario             = 'Total de Transferencia : ' + RTRIM(LTRIM(CAST(@MontoPago AS VARCHAR(10)))) + ' - ' + 'Total del Envio : ' + RTRIM(LTRIM(CAST(@TotalEnvio AS VARCHAR(10))))
                -- SET @ActualizaEstadoEnvio    = 1
                EXECUTE [dbo].[EnviosSeguimientoInsert] @ControlError OUTPUT, @EnvioID, @Comentario, @UsuariosSistemaID, @EstadoID, @FechaEnviosSeguimientoInsert, @ActualizaEstadoEnvio
            END

        END

        COMMIT TRANSACTION
    END TRY
    BEGIN CATCH

        -- Cierre del cursor
        CLOSE cEnviosDetalle
        -- Liberar los recursos
        DEALLOCATE cEnviosDetalle

        ROLLBACK TRANSACTION
        -- Control de Errores
        SET @ControlError = ERROR_MESSAGE(); 
        INSERT INTO LogErrores (Numero, Mensaje, Procedimiento, Linea) VALUES (ERROR_NUMBER(), ERROR_MESSAGE(), ERROR_PROCEDURE(), ERROR_LINE())

    END CATCH;

END

In what could be failing, I had more errors but I solved them, this is giving me headaches. It's a stored procedure, I forgot to say it.

Greetings,

    
asked by Eduardo Manuel Leon Cuya 04.09.2018 в 21:05
source

0 answers