ejecutar un proc almacenado desde una instruccion SQL

08/09/2003 - 11:41 por Sanchez Arnoletto Martin Rodrigo | Informe spam
Estimado GRupo:

Tengo un proc. almacenado llamado usp_calcprec al cual el paso el codigo de
un articulo y la lista de precios y me devuelve mediante la variable @prec
el precio de dicho articulo
el tema es que si quiero hacer una lista de precios de articulos, debo
cargar un cursor con todos los componentes e ir recorriendolo y ejecutando
el proc. almacenado para cada uno y no solo se hace lento sino complicado a
la ejecucion.
La pregunta concretamente es:

¿existe la posibilidad de incluir un EXEC dentro de un select??? algo como

select idcomponente, detalle,(exec usp_calcprec idcomponente,idlista,@prec
output) as precio from componentes

Este no funciona
Si existe, cual seria la sintaxis correcta???


Gracias desde ya

Saludos desde Menorca

Ing. Sanchez Arnoletto Martin Rodrigo
messenger: mrsarnoletto@hotmail.com
email: mrsarnoletto@dixisargentina.com.ar

Preguntas similare

Leer las respuestas

#11 Pablo Roca
08/09/2003 - 18:49 | Informe spam
No te puedo decir el motivo exacto porque no lo sé ... pero creo que puede
ser alguno de estos. Ojo no quiero polemizar ahi ... solo es puramente
informativo.

- que parece que entras como a todo tren, preguntando el mas sitios del
lugar debido.

- que puede que ya te lo hayan contestado en uno de los grupos y se mantiene
una discusion dificilmente seguible (unos dan reply haciendo el crosspost y
otros no).. Conclusión ... mas respuestas en un news, que en otro.

- imaginate que si por ejemplo alguien lee los dos grupos de noticias (como
es mi caso), y te lo respondo en uno solo .. pues tendré que andar revisando
los dos grupos para respuestas parciales (sin crosspost)

No se ... quizas puedan ser estos .. o algun motivo mas. De todos modos a mi
si es una pregunta tecnica no me molesta.

Saludos,

Pablo Roca - Microsoft Visual Foxpro MVP
Sysop de PortalFox (http://www.portalfox.com)
La Coruña, España
"Apoya a FoxPro, utiliza software legal"

"Sanchez Arnoletto Martin Rodrigo" escribió en el
mensaje news:
Aprovecho la colada para preguntar porque se considera al crossposting un
mal habito? Si está bien orientado, creo que es una manera de como ven
llegar a respuestas concretas. Lamento lo ocurrido, pero me gustaría saber
el porqué se lo considera un mal hábito, repito, siempre y cuando se


dirijan
a grupos donde se discuta el tema al cual va referido el news. Entiendo
perfectamente que es una herramienta la mar de buena para transmitir SPAM


y
cosas por el estilo.

Saludos y disculpen


Ing. Sanchez Arnoletto Martin Rodrigo
messenger:
email:





"Salvador Ramos" escribió en el mensaje
news:
> Si, ha sido por el crossposting, pero me alegro mucho de leerte por aquí
>
> jejeje, algo bueno tenía que tener el mal hábito del crossposting,


siempre
> hay que ver el lado bueno jejeje.
>
> Un abrazo Pablo ;-)))
>
>
> Un saludo
> Salvador Ramos
> Murcia - España
>
> No puedes conseguir software rápidamente disminuyendo su calidad.
> En cambio, si que lo consigues aumentando la calidad.
>
> www.helpdna.net (información sobre Windows DNA, SQL Server, .NET, ...)
>
>
> Microsoft MVP SQL Server
> MCP SQL Server
> PASS Spanish Group (www.sqlpass.org)
>
>
> "Pablo Roca" escribió en el mensaje
> news:
> > Ops .. ya veo .. era un crosspost...
> >
> > Bueno .. es lo mismo.
> >
> > Un saludo :)
> >
> > Saludos,
> >
> > Pablo Roca - Microsoft Visual Foxpro MVP
> > Sysop de PortalFox (http://www.portalfox.com)
> > La Coruña, España
> > "Apoya a FoxPro, utiliza software legal"
> >
> > "Pablo Roca" escribió en el mensaje
> > news:
> > > Hombre Salvador!
> > >
> > > Bienvenido por estos lares ... :))
> > >
> > > Que los chicos grandes de SQL Server se acerquen por aqui es una


buena
> > > noticia. :)))
> > >
> > > Saludos,
> > >
> > > Pablo Roca - Microsoft Visual Foxpro MVP
> > > Sysop de PortalFox (http://www.portalfox.com)
> > > La Coruña, España
> > > "Apoya a FoxPro, utiliza software legal"
> > >
> > > "Salvador Ramos" escribió en el mensaje
> > > news:
> > > > Hola:
> > > >
> > > > Eso no es posible hacerlo. Para solucionar ese caso tienes las
> funciones
> > > > definidas por el usuario UDF's.
> > > >
> > > > Si que podrías hacer SELECT Campo1, Campo2, dbo.TuFunción(@Par1)
FROM
> > ...
> > > > Para crear estas funciones tienes las instrucción CREATE FUNCTION.
> > > >
> > > > Esta es una de las novedades de SQL Server 2000, en versiones
> anteriores
> > > no
> > > > estaba disponible.
> > > >
> > > >
> > > > Un saludo
> > > > Salvador Ramos
> > > > Murcia - España
> > > >
> > > > No puedes conseguir software rápidamente disminuyendo su calidad.
> > > > En cambio, si que lo consigues aumentando la calidad.
> > > >
> > > > www.helpdna.net (información sobre Windows DNA, SQL Server, .NET,
...)
> > > >
> > > >
> > > > Microsoft MVP SQL Server
> > > > MCP SQL Server
> > > > PASS Spanish Group (www.sqlpass.org)
> > > >
> > > >
> > > > "Sanchez Arnoletto Martin Rodrigo"
escribió
> > en
> > > el
> > > > mensaje news:#
> > > > > Estimado GRupo:
> > > > >
> > > > > Tengo un proc. almacenado llamado usp_calcprec al cual el paso


el
> > codigo
> > > > de
> > > > > un articulo y la lista de precios y me devuelve mediante la
variable
> > > @prec
> > > > > el precio de dicho articulo
> > > > > el tema es que si quiero hacer una lista de precios de


articulos,
> debo
> > > > > cargar un cursor con todos los componentes e ir recorriendolo y
> > > ejecutando
> > > > > el proc. almacenado para cada uno y no solo se hace lento sino
> > > complicado
> > > > a
> > > > > la ejecucion.
> > > > > La pregunta concretamente es:
> > > > >
> > > > > ¿existe la posibilidad de incluir un EXEC dentro de un select???
> algo
> > > como
> > > > >
> > > > > select idcomponente, detalle,(exec usp_calcprec
> > > idcomponente,idlista,@prec
> > > > > output) as precio from componentes
> > > > >
> > > > > Este no funciona
> > > > > Si existe, cual seria la sintaxis correcta???
> > > > >
> > > > >
> > > > > Gracias desde ya
> > > > >
> > > > > Saludos desde Menorca
> > > > >
> > > > > Ing. Sanchez Arnoletto Martin Rodrigo
> > > > > messenger:
> > > > > email:
> > > > >
> > > > >
> > > >
> > > >
> > >
> >
>
>


Respuesta Responder a este mensaje
#12 Salvador Ramos
09/09/2003 - 10:35 | Informe spam
jeje, Pablo, me alegro que te pases por los grupos de SQL Server, a ver si a
parte de leerlos mandas algun mensajillo por allí, que será un placer leerte
;-)

Un saludo
Salvador Ramos
Murcia - España

No puedes conseguir software rápidamente disminuyendo su calidad.
En cambio, si que lo consigues aumentando la calidad.

www.helpdna.net (información sobre Windows DNA, SQL Server, .NET, ...)


Microsoft MVP SQL Server
MCP SQL Server
PASS Spanish Group (www.sqlpass.org)


"Pablo Roca" escribió en el mensaje
news:#
No te puedo decir el motivo exacto porque no lo sé ... pero creo que puede
ser alguno de estos. Ojo no quiero polemizar ahi ... solo es puramente
informativo.

- que parece que entras como a todo tren, preguntando el mas sitios del
lugar debido.

- que puede que ya te lo hayan contestado en uno de los grupos y se


mantiene
una discusion dificilmente seguible (unos dan reply haciendo el crosspost


y
otros no).. Conclusión ... mas respuestas en un news, que en otro.

- imaginate que si por ejemplo alguien lee los dos grupos de noticias


(como
es mi caso), y te lo respondo en uno solo .. pues tendré que andar


revisando
los dos grupos para respuestas parciales (sin crosspost)

No se ... quizas puedan ser estos .. o algun motivo mas. De todos modos a


mi
si es una pregunta tecnica no me molesta.

Saludos,

Pablo Roca - Microsoft Visual Foxpro MVP
Sysop de PortalFox (http://www.portalfox.com)
La Coruña, España
"Apoya a FoxPro, utiliza software legal"

"Sanchez Arnoletto Martin Rodrigo" escribió en


el
mensaje news:
> Aprovecho la colada para preguntar porque se considera al crossposting


un
> mal habito? Si está bien orientado, creo que es una manera de como ven
> llegar a respuestas concretas. Lamento lo ocurrido, pero me gustaría


saber
> el porqué se lo considera un mal hábito, repito, siempre y cuando se
dirijan
> a grupos donde se discuta el tema al cual va referido el news. Entiendo
> perfectamente que es una herramienta la mar de buena para transmitir


SPAM
y
> cosas por el estilo.
>
> Saludos y disculpen
>
>
> Ing. Sanchez Arnoletto Martin Rodrigo
> messenger:
> email:
>
>
>
>
>
> "Salvador Ramos" escribió en el mensaje
> news:
> > Si, ha sido por el crossposting, pero me alegro mucho de leerte por


aquí
> >
> > jejeje, algo bueno tenía que tener el mal hábito del crossposting,
siempre
> > hay que ver el lado bueno jejeje.
> >
> > Un abrazo Pablo ;-)))
> >
> >
> > Un saludo
> > Salvador Ramos
> > Murcia - España
> >
> > No puedes conseguir software rápidamente disminuyendo su calidad.
> > En cambio, si que lo consigues aumentando la calidad.
> >
> > www.helpdna.net (información sobre Windows DNA, SQL Server, .NET, ...)
> >
> >
> > Microsoft MVP SQL Server
> > MCP SQL Server
> > PASS Spanish Group (www.sqlpass.org)
> >
> >
> > "Pablo Roca" escribió en el mensaje
> > news:
> > > Ops .. ya veo .. era un crosspost...
> > >
> > > Bueno .. es lo mismo.
> > >
> > > Un saludo :)
> > >
> > > Saludos,
> > >
> > > Pablo Roca - Microsoft Visual Foxpro MVP
> > > Sysop de PortalFox (http://www.portalfox.com)
> > > La Coruña, España
> > > "Apoya a FoxPro, utiliza software legal"
> > >
> > > "Pablo Roca" escribió en el mensaje
> > > news:
> > > > Hombre Salvador!
> > > >
> > > > Bienvenido por estos lares ... :))
> > > >
> > > > Que los chicos grandes de SQL Server se acerquen por aqui es una
buena
> > > > noticia. :)))
> > > >
> > > > Saludos,
> > > >
> > > > Pablo Roca - Microsoft Visual Foxpro MVP
> > > > Sysop de PortalFox (http://www.portalfox.com)
> > > > La Coruña, España
> > > > "Apoya a FoxPro, utiliza software legal"
> > > >
> > > > "Salvador Ramos" escribió en el mensaje
> > > > news:
> > > > > Hola:
> > > > >
> > > > > Eso no es posible hacerlo. Para solucionar ese caso tienes las
> > funciones
> > > > > definidas por el usuario UDF's.
> > > > >
> > > > > Si que podrías hacer SELECT Campo1, Campo2, dbo.TuFunción(@Par1)
> FROM
> > > ...
> > > > > Para crear estas funciones tienes las instrucción CREATE


FUNCTION.
> > > > >
> > > > > Esta es una de las novedades de SQL Server 2000, en versiones
> > anteriores
> > > > no
> > > > > estaba disponible.
> > > > >
> > > > >
> > > > > Un saludo
> > > > > Salvador Ramos
> > > > > Murcia - España
> > > > >
> > > > > No puedes conseguir software rápidamente disminuyendo su


calidad.
> > > > > En cambio, si que lo consigues aumentando la calidad.
> > > > >
> > > > > www.helpdna.net (información sobre Windows DNA, SQL Server,


.NET,
> ...)
> > > > >
> > > > >
> > > > > Microsoft MVP SQL Server
> > > > > MCP SQL Server
> > > > > PASS Spanish Group (www.sqlpass.org)
> > > > >
> > > > >
> > > > > "Sanchez Arnoletto Martin Rodrigo"
> escribió
> > > en
> > > > el
> > > > > mensaje news:#
> > > > > > Estimado GRupo:
> > > > > >
> > > > > > Tengo un proc. almacenado llamado usp_calcprec al cual el paso
el
> > > codigo
> > > > > de
> > > > > > un articulo y la lista de precios y me devuelve mediante la
> variable
> > > > @prec
> > > > > > el precio de dicho articulo
> > > > > > el tema es que si quiero hacer una lista de precios de
articulos,
> > debo
> > > > > > cargar un cursor con todos los componentes e ir recorriendolo


y
> > > > ejecutando
> > > > > > el proc. almacenado para cada uno y no solo se hace lento sino
> > > > complicado
> > > > > a
> > > > > > la ejecucion.
> > > > > > La pregunta concretamente es:
> > > > > >
> > > > > > ¿existe la posibilidad de incluir un EXEC dentro de un


select???
> > algo
> > > > como
> > > > > >
> > > > > > select idcomponente, detalle,(exec usp_calcprec
> > > > idcomponente,idlista,@prec
> > > > > > output) as precio from componentes
> > > > > >
> > > > > > Este no funciona
> > > > > > Si existe, cual seria la sintaxis correcta???
> > > > > >
> > > > > >
> > > > > > Gracias desde ya
> > > > > >
> > > > > > Saludos desde Menorca
> > > > > >
> > > > > > Ing. Sanchez Arnoletto Martin Rodrigo
> > > > > > messenger:
> > > > > > email:
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > >
> >
> >
>
>

Respuesta Responder a este mensaje
#13 Salvador Ramos
09/09/2003 - 10:49 | Informe spam
jeje, igualmente José Luís.

La verdad que el foxpro siempre me ha llamado la atención, me parece una
herramienta muy apropiada para el desarrollo de aplicaciones. Además hace
bastantes años (joer que viejo me estoy haciendo) desarrollé muchas
aplicaciones con Clipper, y hubo un momento en que ésta desapareció y tuve
que elegir una nueva herramienta para mis desarrollos (las opciones fueron
delphi, foxpro y visual basic), finalmente elegí VB y SQL Server ;-)

La pena es que no disponga de tiempo para echarle un vistazo y hacer algun
desarrollo con foxpro, ya me gustaría hacerlo y pasarme por el grupo, jejeje

Un saludo
Salvador Ramos
Murcia - España

No puedes conseguir software rápidamente disminuyendo su calidad.
En cambio, si que lo consigues aumentando la calidad.

www.helpdna.net (información sobre Windows DNA, SQL Server, .NET, ...)


Microsoft MVP SQL Server
MCP SQL Server
PASS Spanish Group (www.sqlpass.org)


"José Luis" escribió en el mensaje
news:40ae01c3761a$32e79190$
Como Pablo yo también he caído en la "trampa" del "cross".

Por un momento creía que te habías dejado influenciar por
Miguel, Al que si vemos de vez en cuando por vfoxpro.

Da igual, aunque no te estemos ganando para la "causa fox"
siempre es un placer saludarte.

José Luis


Hola:

Eso no es posible hacerlo. Para solucionar ese caso


tienes las funciones
definidas por el usuario UDF's.

Si que podrías hacer SELECT Campo1, Campo2, dbo.TuFunción


(@Par1) FROM ...
Para crear estas funciones tienes las instrucción CREATE


FUNCTION.

Esta es una de las novedades de SQL Server 2000, en


versiones anteriores no
estaba disponible.


Un saludo
Salvador Ramos
Murcia - España

No puedes conseguir software rápidamente disminuyendo su


calidad.
En cambio, si que lo consigues aumentando la calidad.

www.helpdna.net (información sobre Windows DNA, SQL


Server, .NET, ...)


Microsoft MVP SQL Server
MCP SQL Server
PASS Spanish Group (www.sqlpass.org)


"Sanchez Arnoletto Martin Rodrigo"


escribió en el
mensaje news:#
Estimado GRupo:

Tengo un proc. almacenado llamado usp_calcprec al cual




el paso el codigo
de
un articulo y la lista de precios y me devuelve




mediante la variable @prec
el precio de dicho articulo
el tema es que si quiero hacer una lista de precios de




articulos, debo
cargar un cursor con todos los componentes e ir




recorriendolo y ejecutando
el proc. almacenado para cada uno y no solo se hace




lento sino complicado
a
la ejecucion.
La pregunta concretamente es:

¿existe la posibilidad de incluir un EXEC dentro de un




select??? algo como

select idcomponente, detalle,(exec usp_calcprec




idcomponente,idlista,@prec
output) as precio from componentes

Este no funciona
Si existe, cual seria la sintaxis correcta???


Gracias desde ya

Saludos desde Menorca

Ing. Sanchez Arnoletto Martin Rodrigo
messenger:
email:






.

Respuesta Responder a este mensaje
#14 Miguel Egea
09/09/2003 - 11:34 | Informe spam
Entre Jose Luís y Pablo acabarán convenciendote jeje

Saludos Cordiales
=Proxima reunión virtual sobre rendimiento.
Messenger:
Miguel Egea
http://www.portalsql.com
Microsoft SQL-SERVER MVP.

¡Cuida el rendimiento! Evita los cursores
Brigada Anti-Cursores
==

"Salvador Ramos" escribió en el mensaje
news:#
jeje, igualmente José Luís.

La verdad que el foxpro siempre me ha llamado la atención, me parece una
herramienta muy apropiada para el desarrollo de aplicaciones. Además hace
bastantes años (joer que viejo me estoy haciendo) desarrollé muchas
aplicaciones con Clipper, y hubo un momento en que ésta desapareció y tuve
que elegir una nueva herramienta para mis desarrollos (las opciones fueron
delphi, foxpro y visual basic), finalmente elegí VB y SQL Server ;-)

La pena es que no disponga de tiempo para echarle un vistazo y hacer algun
desarrollo con foxpro, ya me gustaría hacerlo y pasarme por el grupo,


jejeje

Un saludo
Salvador Ramos
Murcia - España

No puedes conseguir software rápidamente disminuyendo su calidad.
En cambio, si que lo consigues aumentando la calidad.

www.helpdna.net (información sobre Windows DNA, SQL Server, .NET, ...)


Microsoft MVP SQL Server
MCP SQL Server
PASS Spanish Group (www.sqlpass.org)


"José Luis" escribió en el mensaje
news:40ae01c3761a$32e79190$
Como Pablo yo también he caído en la "trampa" del "cross".

Por un momento creía que te habías dejado influenciar por
Miguel, Al que si vemos de vez en cuando por vfoxpro.

Da igual, aunque no te estemos ganando para la "causa fox"
siempre es un placer saludarte.

José Luis


>Hola:
>
>Eso no es posible hacerlo. Para solucionar ese caso
tienes las funciones
>definidas por el usuario UDF's.
>
>Si que podrías hacer SELECT Campo1, Campo2, dbo.TuFunción
(@Par1) FROM ...
>Para crear estas funciones tienes las instrucción CREATE
FUNCTION.
>
>Esta es una de las novedades de SQL Server 2000, en
versiones anteriores no
>estaba disponible.
>
>
>Un saludo
>Salvador Ramos
>Murcia - España
>
>No puedes conseguir software rápidamente disminuyendo su
calidad.
>En cambio, si que lo consigues aumentando la calidad.
>
>www.helpdna.net (información sobre Windows DNA, SQL
Server, .NET, ...)
>
>
>Microsoft MVP SQL Server
>MCP SQL Server
>PASS Spanish Group (www.sqlpass.org)
>
>
>"Sanchez Arnoletto Martin Rodrigo"
escribió en el
>mensaje news:#
>> Estimado GRupo:
>>
>> Tengo un proc. almacenado llamado usp_calcprec al cual
el paso el codigo
>de
>> un articulo y la lista de precios y me devuelve
mediante la variable @prec
>> el precio de dicho articulo
>> el tema es que si quiero hacer una lista de precios de
articulos, debo
>> cargar un cursor con todos los componentes e ir
recorriendolo y ejecutando
>> el proc. almacenado para cada uno y no solo se hace
lento sino complicado
>a
>> la ejecucion.
>> La pregunta concretamente es:
>>
>> ¿existe la posibilidad de incluir un EXEC dentro de un
select??? algo como
>>
>> select idcomponente, detalle,(exec usp_calcprec
idcomponente,idlista,@prec
>> output) as precio from componentes
>>
>> Este no funciona
>> Si existe, cual seria la sintaxis correcta???
>>
>>
>> Gracias desde ya
>>
>> Saludos desde Menorca
>>
>> Ing. Sanchez Arnoletto Martin Rodrigo
>> messenger:
>> email:
>>
>>
>
>
>.
>


Respuesta Responder a este mensaje
#15 Sanchez Arnoletto Martin Rodrigo
09/09/2003 - 12:41 | Informe spam
Volviendo a lo estrictamente tecnico, la version del servidor SQL que poseo
es la 97, Existe alguna posibilidad de hacer un calculo mediante un
procedimiento DENTRO de la instruccion SQL digo medieante un procedimiento
porque lo que tengo que hacer es lo siguiente

Un artículo es un descompuesto de varios componentes cada uno de los cuales
pueden ser tambien descompuestos de otros. Así por ejemplo:

1 metro de pared seca (codigo D0001.0001) esta formado por:
Cantidad Codigo Descripcion Unitario Total
0,5 B0001.0050 tonelada de piedra 34? 17?
0,5 A0003.0010 mortero cal 200? 100?
0,33 B0001.0010 m3 agua 10?
3,30?


120.30?

0,03 %0000.0030 medios auxiliares 0.03% 3.61?


123.91?

y a la vez un mortero de cal de 200? esta formado por ejemplo:
Cantidad Codigo Descripcion Unitario Total
1,0 B0002.0050 tonelada de cal 170? 170?
2,417 B0001.0010 m3 agua 10?
24.17?


194.17?

0,03 %0000.0030 medios auxiliares 0.03% 5.82 ?


200?
Yo lo he organizado en 2 tablas:
articulos, armado con las siguientes estructuras:
ARTICULOS
CODIGO DESCRIPCION PRECIO
%0000.0030 Medios Aux. al 3%
B0001.0050 tonelada de piedra 34? LOS COMPONENTES
TIPO B son BASICOS POR LO QUE TIENEN
B0001.0010 agua 10? EL PRECIO
DE BASE. A PARTIR DE ESTOS PRECIOS Y LA TABLA
B0002.0050 tonelada de cal 170? DE ARMADO(CAMPO
CANTIDAD) DEBO ARMAR LOS PRECIOS DE
A0003.0010 mortero cal LOS
ARTICULOS A y D que son AUXILIARES Y DESCOMPUESTOS
D0001.0001 pared seca


ARMADO
CODIGO COD_RELACIONADO CANTIDAD
D0001.0001 B0001.0050 0,5
D0001.0001 A0003.0010 0,5
D0001.0001 B0001.0010 0,33
D0001.0001 %0000.0030 0,03

A0003.0010 B0002.0050 1
A0003.0010 B0001.0010 2.417
A0003.0010 %0000.0030 0,03


y debo calcular en una sola intruccion SQL a partir de los componentes
basicos el precio del componente D0001.0001 ( y por ende el de A0003.0010,
recordando que los medios auxiliares siempre son el CANTIDAD % de la
sumatoria de los totales de los componentes que constituyen el ARMADO del
componente base, como se ejemplifica en la primera fase.

Bueno Muchisimas gracias por su ayuda

Ing. Sanchez Arnoletto Martin Rodrigo
messenger:
email:
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida