El servidor de Produccion y desarrollo es el mismo? Son la misma version de SQL? Proba de ponerle SET NOCOUNT ON en el SP (despues del AS), para que no te devuelva solo lo que te intereza (o sea los selects).
Sebastian Gambolati
----- Mensaje original ----
De: Diego Campos <[EMAIL PROTECTED]>
Para: vbusers List Member <[email protected]>
Enviado: lunes 27 de agosto de 2007, 11:25:16
Asunto: [vbusers] Recuperar Valor de Parámetro de Un Store Procedure
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.
De: Diego Campos <[EMAIL PROTECTED]>
Para: vbusers List Member <[email protected]>
Enviado: lunes 27 de agosto de 2007, 11:25:16
Asunto: [vbusers] Recuperar Valor de Parámetro de Un Store Procedure
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.
--
![]() |
Diego Campos
Pasco 1675 (2000) Rosario, Santa Fe, Argentina.
Tel./Fax: +54 (341) 485-1432 / 568-0183
|

