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:%
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


Respuesta Responder a este mensaje
#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:%
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:%
> 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
>
>


Respuesta Responder a este mensaje
#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:
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:%
> 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:%
> > 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
> >
> >
>
>


Respuesta Responder a este mensaje
#4 Adrian Garcia
09/01/2004 - 22:47 | Informe spam
De nada!

Saludos
Adrian D. Garcia

"alf" wrote in message
news:
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:
> 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:%
> > 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:%
> > > 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
> > >
> > >
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida