output en stored procedure

09/01/2004 - 01:26 por alf | Informe spam
Hola:
estoy haciendo mi primer sp que devuelve parametros pero no logro que
funcione.
el sp es el sgte:

CREATE PROCEDURE spTotalPrecioNetoM
@idCliente int,
@idMoneda int,
@SumPrecioNeto real OUTPUT
AS
SELECT @SumPrecioNeto=SUM(t_FichaCliente.precio_neto)
FROM t_FichaCliente
WHERE t_FichaCliente.id_cliente =@idCliente AND
t_FichaCliente.id_moneda=@idMoneda
RETURN
GO


y lo llamo de esta forma:

DECLARE @SumaNeto1 real

EXECUTE spTotalPrecioNetoM '2888', '1', @SumaNeto1

PRINT @SumaNeto1

GO


pero no devuelve nada. ejecutando la query del sp directamente si devuelve
valor, o sea, que el problema lo tengo en la definicion del sp o en el
llamado.

gracias, alf

Preguntas similare

Leer las respuestas

#1 alf
09/01/2004 - 02:03 | Informe spam
ya !!!, me faltaba OUTPUT detras del parametro de salida en el llamado al
procedimiento.

Pero ahora tengo otra duda, mi intension es transformar una query que tengo
en Access a SQL. esta query hace llamados a funciones que estan definidas
dentro de Access.
Ej:
Select id, nombre, TotalNeto(id), TotalVenta(id), MejorProveedor(id) FROM
clientes

TotalNeto(), TotalVenta() y MejorProveedor() son funciones que realizan una
query sobre otras tablas usando el id del cliente y devuelven un valor.
Como paso estas funciones a SQL y como logro el resultado final en SQL ???
como llamo a funciones o precedimentos en una vista ?? si es que esto se
puede hacer en una view.
o
como quedaria un stored_procedure que me devuelva los registros llamandome a
otros sp o functions en cada fila ????

mil gracias, alf.

"alf" wrote in message
news:%
Mostrar la cita
#2 Adrian Garcia
09/01/2004 - 07:37 | Informe spam
Vamos por partes...

Para las funciones que tienes en Access, puedes utilizar las funciones de
SQL Server 2000 (solo la version 2000, en las versiones anteriores no
existia esta opcion). Hay varios tipos de funciones, las que te devuelven un
valor escalar y las que te devuelven una serie de filas (esta division es
una simplificacion). Asi que no tendras problemas de convertir tus funciones
de Access. Vas a allar mucha mas informacion sobre funciones en los BOL.

Para obtener el resultado final de llamar a estas funciones es casi similar
a lo que haces en Acces:

Select id, nombre, dbo.TotalNeto(id), dbo.TotalVenta(id),
dbo.MejorProveedor(id) FROM clientes

Ojo con la performance! Fijate que al tratar esto por cada fila de tu tabla
clientes vas a ejecutar todas estas funciones!. No le das chance al motor
para que optimize las busqueda. En el foro recientemente se trato este tema.
Quizas te convenga armar un query complejo con funciones de agregacion y
multiples joins para el caso que planteas si vas a ejecutar esta consulta
sobre todas las filas de tu tabla clientes.

Saludos
Adrian D. Garcia
NDSoft



"alf" wrote in message
news:%
Mostrar la cita
tengo
Mostrar la cita
una
Mostrar la cita
a
Mostrar la cita
devuelve
Mostrar la cita
#3 alf
09/01/2004 - 16:51 | Informe spam
muchas gracias adrian, efectivamente he probado con funciones y obtengo unos
10 segundos de tiempo de ejecucion de la query, sin embargo usando querys
anidadas he obtenido unos escasos 2 segundos !!!
ahora si, la query nada mas la entiendo yo, jejeje.

saludos, alf.

"Adrian Garcia" wrote in message
news:
Mostrar la cita
un
Mostrar la cita
funciones
Mostrar la cita
similar
Mostrar la cita
tabla
Mostrar la cita
tema.
Mostrar la cita
al
Mostrar la cita
definidas
Mostrar la cita
FROM
Mostrar la cita
???
Mostrar la cita
llamandome
Mostrar la cita
#4 Adrian Garcia
09/01/2004 - 22:47 | Informe spam
De nada!

Saludos
Adrian D. Garcia

"alf" wrote in message
news:
Mostrar la cita
unos
Mostrar la cita
de
Mostrar la cita
devuelven
Mostrar la cita
es
Mostrar la cita
motor
Mostrar la cita
consulta
Mostrar la cita
realizan
Mostrar la cita
valor.
Mostrar la cita
se
Mostrar la cita
que
Mostrar la cita
el
Mostrar la cita
Ads by Google
Search Busqueda sugerida