Amigos:
Tengo la estructura de tabla:
Tabla : HParametro
Nombre_______________Tipo
=======================
Parametro_____________Int
Descripcion____________Text(50)
Valor_________________Numeric
Y el siguiente procedimiento almacenado asociado.
/** Este procedimiento hace lo siguiente:
** Muestra el valor del parametro actualmente
** Ahora, si el FLAG=1, entonces, primero incrementa el valor
*/
CREATE PROCEDURE Secuencia_Parametro @Parametro int,@Flag int, @Valor numeric OUTPUT
AS
IF @Flag=1
BEGIN
UPDATE hParametros SET Valor=Valor+1 WHERE Parametro=@Parametro
END
SELECT @Valor=Valor FROM hParametros WHERE Parametro=@Parametro
RETURN @Valor
En el Server Query Analizer, si pongo lo siguiente:
declare @@Salida numeric
exec secuencia_parametro 3,0,@@Salida
Me muestra el siguiente mensaje:
The command(s) completed successfully.
En cambio, se modifico el valor 0 por 1:
declare @@Salida numeric
exec secuencia_parametro 3,1,@@Salida
Me muestra el siguiente mensaje:
(1 row(s) affected)
Lo que esta bien, ya que hace lo que deseo.
Ahora la GRAN PREGUNTA:
Si utilizo la siguiente sentencia en VB:
SentenciaSQL="Select Valor from HParametros Where Parametro=3"
Set Resultado=aConexion.OpenResultSet(Sentenciasql)
If Not Resultado.EOF Then
Msg="Valor Parametro=" & Resultado!Valor
Msgbox Msg
Endif
Lo que hace es, recuperar el valor del parametro 3, utilizando directamente una consulta.
NOTA: Utilizo RDO para conectarme, pero para el caso, es indiferente, ya que lo que importa es lo siguiente:
QUE INSTRUCCIONES UTILIZO PARA EJECUTAR EL PROCEDIMIENTO ALMACENADO Y RECUPERAR EL VALOR DE RETORNO?
De antemano, muchisimas gracias.
P.D.: En todo caso, en todos los libros de SQL que he revisado, los ejemplos funcionan al 100% en el Query Analizer, pero no asi al querer usarlos en codigo VB.