Hola,
Tengo una aplicación en VB 6 y Ado 2.7.

Esta aplicación ejecuta un Procedimiento Almacenado de SQL Server 2000 en un Servidor (con Ado 2.6) y el mismo me devuelve como un parámetro del tipo OUTPUT la cantidad de filas afectadas
en los procesos internos del SP.


En mi ambiente de desarrollo todo funciona OK y puede recuperar el valor del Parámetro, pero en Producción no.
El método no falla, solo que no recupera el valor del Parámetro.

Aqui les paso el código de un ejemplo simplificado..

Procedimiento Almacenado

CREATE PROCEDURE spPruebaOutput
    @CANT_ASIENTOS INT = 0 OUTPUT
AS

DECLARE
    @INS_1 INT

--SET @CANT_ASIENTOS = 1157
SET @INS_1 = 5

--SELECT GETDATE() as Hoy

CREATE TABLE #TABLA1 (
 campo1 varchar(20)
)

begin transaction

insert into #TABLA1 values('Diego Campos')
set @CANT_ASIENTOS = @@ROWCOUNT

select * from #TABLA1
commit transaction

GO




Método VB

Private Sub Command1_Click()
Dim Result As Integer
Dim CantReg As Integer

Set Comando = New ADODB.Command
Set Rs = New ADODB.Recordset

CantReg = 0

With Comando
  .ActiveConnection = CN
  .CommandType = adCmdStoredProc
  .CommandText = "spPruebaOutput"
  .NamedParameters = True
  .Parameters.Append .CreateParameter("@CANT_ASIENTOS", adInteger, adParamOutput)
  .CommandTimeout = 300 '' 5 minutos
End With

Comando.Execute
Result = Comando.Parameters("@CANT_ASIENTOS").Value

MsgBox "Valor Recuperado: " & Result


Set Comando = Nothing

End Sub




Alguien sabe que puede ser ??
Se puede deber a las distintas versiones del ADO ??
Gracias.



--

SISTEMATICA ingenieria de software srl
Diego Campos
Pasco 1675 (2000) Rosario, Santa Fe, Argentina.
Tel./Fax: +54 (341) 485-1432 / 568-0183

Responder a