En este caso tenes que pasar los Sp a funciones y las tratas como tal..

Saludos..

----- Original Message ----- 
  From: Carlos A. Schroeter 
  To: [EMAIL PROTECTED] 
  Sent: Wednesday, February 20, 2008 12:32 PM
  Subject: [dbadmin] Stored Procedures que devuelvan valores


  Gracias, Mariano

   

  No funca, sigo buscando

   

  Muchas gracias

   

  De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Mariano Dios
  Enviado el: miércoles, 20 de febrero de 2008 12:05
  Para: Carlos A. Schroeter
  Asunto: [dbadmin] Stored Procedures que devuelvan valores

   

  Carlos,

  es cierto, la sentencia no está bien escrita.  En todo caso debería ser:

  declare @Resultado varchar(20)
  exec @Resultado = Procedimiento

  select @Resultado

  Pero hasta donde yo se, la asignación del resultado de un procedimiento se 
hace para chequear si funcionó bien o no(con el codigo de retorno del 
procedimiento, el RETURN 0, o cualquier otro valor si hubo un error). 

  Deberías usar el parametro de salida, o seguir buscando.

  Mariano




------------------------------------------------------------------------------

  From: [EMAIL PROTECTED]
  To: [EMAIL PROTECTED]
  Subject: [dbadmin] Stored Procedures que devuelvan valores
  Date: Wed, 20 Feb 2008 11:55:22 -0200

  Gracias por la respuesta Mariano

   

  Es lo primero que quise hacer.pero SQL 2000 no admite la sentencia

   

  SELECT @Resultado = EXEC MIPROCEDIMIENTO

   Devolviendo el siguiente error:  Sintaxis incorrecta cerca de la palabra 
clave 'exec'.

  Gracias

   

  De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Mariano Dios
  Enviado el: miércoles, 20 de febrero de 2008 11:36
  Para: Carlos A. Schroeter
  Asunto: [dbadmin] Stored Procedures que devuelvan valores

   


  Hola Carlos,

  si los procedimientos devuelven un solo dato, lo solucionas asignándole el 
resultado a una variable local de tu procedimiento. Algo así como:

  declare @Resultado   INT

  SELECT   @Resultado = EXEC Procedimiento_I
  SELECT   @Resultado

  Ahora, si tus procedimientos devuelven más de un dato, una consulta de varias 
columnas por ejemplo, tendrías que usar los llamados parametros de salida de un 
procedimiento.

  Sería más o menos así:

  CREATE PROCEDURE Procedimiento_II
      @Parametro_I      INT,
      @Parametro_II   VARCHAR(10) OUTPUT,
      @Parametro_III   VARCHAR(10) OUTPUT
  AS

  ...
  ....

  RETURN 0

  Y cuando llamas al procedimiento Procedimiento_II, lo haces de la siguiente 
manera:

  DECLARE @Parametro_I  VARCHAR(10)
  DECLARE @Parametro_II  VARCHAR(10)

  Llamas al procedimiento, avisando que los parametros 2 y tres son de salida:
  EXEC Procedimiento_II 100, @Parametro_I OUTPUT, @Parametro_II OUTPUT

  Una vez ejecutado, en @Parametro_I y @Parametro_II vas a tener los resultados 
qeu se le hayan asignado dentro del procedimiento. Haces la seleccion de datos 
final:

  SELECT   @Parametro_I, @Parametro_II

  Probá a ver si te funciona.

  Mariano






------------------------------------------------------------------------------

  From: [EMAIL PROTECTED]
  To: [EMAIL PROTECTED]
  Subject: [dbadmin] Stored Procedures que devuelvan valores
  Date: Wed, 20 Feb 2008 11:12:47 -0200

  Hola Grupo

   

  Quisiera saber si es posible y cual es la manera más adecuada de hacer lo 
siguiente desde SQL 2000

   

  Tener un Stored Procedure principal que se encarga de llamar a otros Stored 
de los cuales recibe valores. Por Ejemplo algo del tipo:

   

  CREATE PROCEDURE PRINCIPAL

                  @FECHA SMALLDATETIME

  AS 

   

  EXEC SP_VENTAS @FECHA

  EXEC SP_COMPRAS @FECHA

  ...

  ...

  ... COMO CAPTURO LO QUE DEVUELVEN ESTOS STORED???

   

  GO

   

  CREATE PROCEDURE SP_VENTAS

                  @FECHA AS SMALLDATETIME

  AS

   

  SELECT SUM(IMPORTE) FROM VENTAS

                  WHERE FECHA = @FECHA

   

  GO

   

  CREATE PROCEDURE SP_COMPRAS

                  @FECHA AS SMALLDATETIME

  AS

   

  SELECT SUM(IMPORTE) FROM COMPRAS

                  WHERE FECHA = @FECHA

   

  GO

   

  Muchas Gracias!

   

  Carlos A. Schroeter

   

   

   

   


------------------------------------------------------------------------------

  Ingresá ya a MSN en Concierto y disfrutá los recitales en vivo de tus 
artistas favoritos. MSN en Concierto

  __________ Información de NOD32, revisión 2888 (20080220) __________

  Este mensaje ha sido analizado con NOD32 antivirus system
  http://www.nod32.com

   


------------------------------------------------------------------------------

  Ingresá ya a MSN Deportes y enterate de las últimas novedades del mundo 
deportivo. MSN Deportes

  __________ Información de NOD32, revisión 2888 (20080220) __________

  Este mensaje ha sido analizado con NOD32 antivirus system
  http://www.nod32.com

Responder a