Declare cursor con SP

21/07/2006 - 23:40 por Juan Carlos Flores | Informe spam
Necesito crear un cursor para recorrerlo, pero deso usar un SP que ya
tengo para crearlo, como lo hago ?


Declare miCursor Cursro for SELECT


Quiero reemplazar el SELECT por un SP que recibe parametros.


SALUDOS



JCF

Preguntas similare

Leer las respuestas

#16 Carlos Sacristán
27/07/2006 - 08:29 | Informe spam
Este código está bien, pero según me comentaste el error estaba en el
procedimiento sp_getPaletContain, no?


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Juan Carlos Flores" escribió en el
mensaje news:#
En realidad no se ya que poner, aca te copio todo el SP del cual espero
obtener columnas con datos... las columnas las obtengo, pero sin datos,
porque el problema lo tengo en el INSERT a través de un SP. Si pongo al
linea del insert como comentario ya no me da error en la ejecucion. Hal
hacer PARSE del codigo, no me da error, el error es solo al ejecutarlo.
Lo malo es que no comprendo el mensaje que significa o porque sucede y
como solucionarlo.





set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

@cPalet nVarchar(10),
@nIDPalet int

AS
BEGIN
SET NOCOUNT ON;

Create Table #TT (Item nVarchar(10), OProd nVarchar(10), Lbs
Numeric(12,2), Qty Int, Lib Bit, Qua Bit, Cond Bit)

Insert #TT Execute sp_getPaletContain @nIDPalet, @cpalet

select * from #TT
drop table #TT

END



Carlos Sacristán escribió:
> Es complicado ayudarte si no posteas el script de los procedimientos
> involucrados...
>
>
> Un saludo
>
> -
> "Sólo sé que no sé nada. " (Sócrates)
>
> "Juan Carlos Flores" escribió en


el
> mensaje news:
>> Gracias Carlos por la atencion que me has dado.
>>
>>
>> Me da el mensaje:
>>
>> Msg 8152, Level 16, State 6, Procedure sp_getPaletContain, Line 30
>> String or binary data would be truncated.
>>
>> (1 row(s) affected)
>>
>>
>>
>> Si ejecuto solo el SP involucrado me da resultados correctos, que
>> debería ser lo mismo en este otro, que es solamente una prueba en este
>> caso, para luego implementarlo en donde si me urge, y es donde espero
>> poder tabajar con el cursor resultante.
>>
>>
>> Saludos
>>
>>
>>
>> JCF
>>
>>
>> Carlos Sacristán escribió:
>>> ¿Y por qué no te funciona? ¿Lanza algún error?
>>>
>>>
>>> Un saludo
>>>
>>> -
>>> "Sólo sé que no sé nada. " (Sócrates)
>>>
>>> "Juan Carlos Flores" escribió


en
> el
>>> mensaje news:
>>>> No me ha funcionado he hecho lo siguiente :
>>>>
>>>>
>>>> Create Table #TT (Item nVarchar(10), OProd nVarchar(10), Lbs
>>>> Numeric(12,2), Qty Int, Lib Bit, Qua Bit, Cond Bit)
>>>>
>>>> Insert #TT Execute sp_getPaletContain @nIDPalet, @cpalet
>>>>
>>>> select * from #TT
>>>> drop table #TT
>>>>
>>>>
>>>>
>>>> El insert no me funciona, lo demas si. puedo meter la tabla en una
>>>> variable tipo cursor, pero me da vacia por que no funciona el cursor.
>>>>
>>>> Saludos.
>>>>
>>>>
>>>> JCF
>>>>
>>>>
>>>> Juan Carlos Flores escribió:
>>>>> Carlos, voy a probarlo ahorita mismo, muchas gracias.
>>>>>
>>>>>
>>>>> Saludos
>>>>>
>>>>>
>>>>>
>>>>> JCF
>>>>>
>>>>> Carlos Sacristán escribió:
>>>>>> Suponiendo que el primer procedimiento almacenado devuelve dos
>>>>>> columnas
>>>>>> (A y B), un ejemplo para manejar estos resultados sería:
>>>>>>
>>>>>> ***************************************************************
>>>>>>


de
>>>>>> datos
>>>>>> que lo que devuelve el primer procedimiento
>>>>>> CREATE TABLE #t ...
>>>>>>
>>>>>> INSERT #t
>>>>>> EXECUTE el_primer_procedimiento @param1=
>>>>>>


registros
>>>>>> de la
>>>>>> tabla temporal creada
>>>>>>
>>>>>> ***************************************************************
>>>>>>
>>>>>> Espero haberme explicado
>>>>>>
>>>>>> Un saludo
>>>>>>
>>>>>> -
>>>>>> "Sólo sé que no sé nada. " (Sócrates)
>>>>>>
>>>>>> "Juan Carlos Flores"


escribió
>>>>>> en el
>>>>>> mensaje news:#
>>>>>>> Me podrías ampliar mas el como hacerlo ? Porque no debo modificar


el
>>>>>>> primer SP, se puede sin hacer eso ?
>>>>>>>
>>>>>>> Saludos
>>>>>>>
>>>>>>>
>>>>>>> jCF
>>>>>>>
>>>>>>> Carlos Sacristán escribió:
>>>>>>>> ¿No puedes insertar el resultado de ese primer procedimiento


en
>>> una
>>>>>>>> tabla temporal y manejar los resultados en el cursor que


comentas?
>>>>>>>>
>>>>>>>>
>>>>>>>> Un saludo
>>>>>>>>
>>>>>>>> -
>>>>>>>> "Sólo sé que no sé nada. " (Sócrates)
>>>>>>>>
>>>>>>>> "Juan Carlos Flores"
>>>>>>>> escribió en
>>>>>> el
>>>>>>>> mensaje news:e$
>>>>>>>>> Bien, tengo un SP que me devuelve un cursor, ese SP lo uso en


unos
>>>>>>>>> procedimientos en .net, y lleva buena cantidad de codigo el SP


en
>>>>>>>>> mención. Resulta que ahora en otro SP necesito usar el cursor
>>> generado
>>>>>>>>> por el primer SP, recorrer sus datos, y no se como hacer para
> cargar
>>>>>> ese
>>>>>>>>> cursor sin tener que usar poner el select del primer dentro del
>>>>>> segundo,
>>>>>>>>> ademas por mantenimiento de codigo es un problema.
>>>>>>>>>
>>>>>>>>> Espero haberme explicado.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Saludos
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> JCF
>>>>>>>>>
>>>>>>>>> Gustavo Larriera (MVP) escribió:
>>>>>>>>>> No entiendo en detalle lo que intentas hacer. De todas formas
>>>>>>>>>> entiendo
>>>>>>>> que
>>>>>>>>>> si usas variables de tipo CURSOR puede ser útil para lo que
> dices.
>>>>>>>>>> Tal vez si explicas con más nivel de detalle tu problema
> concreto,
>>> te
>>>>>>>>>> podamos ayudar mejor.
>>>>>>>>>>
>>>
>
>
Respuesta Responder a este mensaje
#17 Juan Carlos Flores
27/07/2006 - 16:01 | Informe spam
Nop. El SP sp_getPaletContain esta bien, me da los resultados correctos
si lo ejecuto fuera de este otro SP JCPrueba.

En resumen el SP JCPrueba que ha sido el que te pegué anteriormente, me
da el problema justamente en la linea donde intento hacer el insert a la
tabla temporal usando el SP sp_getPaletContain.

Insert #TT Execute sp_getPaletContain @nIDPalet, @cpalet

Gracias Carlos por tu atencion, este asunto me tiene incomodo, se que es
dificil en SQL server el trabajo con cursores o tablas, no es su fuerte,
lastimosamente, pero encuentro engorroso tener que traerme el codigo del
sp_getPaletContain a pegar dentro de el SP JCPrueba.

Saludos y Gracias



JCF


Carlos Sacristán escribió:
Este código está bien, pero según me comentaste el error estaba en el
procedimiento sp_getPaletContain, no?


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Juan Carlos Flores" escribió en el
mensaje news:#
En realidad no se ya que poner, aca te copio todo el SP del cual espero
obtener columnas con datos... las columnas las obtengo, pero sin datos,
porque el problema lo tengo en el INSERT a través de un SP. Si pongo al
linea del insert como comentario ya no me da error en la ejecucion. Hal
hacer PARSE del codigo, no me da error, el error es solo al ejecutarlo.
Lo malo es que no comprendo el mensaje que significa o porque sucede y
como solucionarlo.





set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

@cPalet nVarchar(10),
@nIDPalet int

AS
BEGIN
SET NOCOUNT ON;

Create Table #TT (Item nVarchar(10), OProd nVarchar(10), Lbs
Numeric(12,2), Qty Int, Lib Bit, Qua Bit, Cond Bit)

Insert #TT Execute sp_getPaletContain @nIDPalet, @cpalet

select * from #TT
drop table #TT

END



Carlos Sacristán escribió:
Es complicado ayudarte si no posteas el script de los procedimientos
involucrados...


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Juan Carlos Flores" escribió en




el
mensaje news:
Gracias Carlos por la atencion que me has dado.


Me da el mensaje:

Msg 8152, Level 16, State 6, Procedure sp_getPaletContain, Line 30
String or binary data would be truncated.

(1 row(s) affected)



Si ejecuto solo el SP involucrado me da resultados correctos, que
debería ser lo mismo en este otro, que es solamente una prueba en este
caso, para luego implementarlo en donde si me urge, y es donde espero
poder tabajar con el cursor resultante.


Saludos



JCF


Carlos Sacristán escribió:
¿Y por qué no te funciona? ¿Lanza algún error?


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Juan Carlos Flores" escribió








en
el
mensaje news:
No me ha funcionado he hecho lo siguiente :


Create Table #TT (Item nVarchar(10), OProd nVarchar(10), Lbs
Numeric(12,2), Qty Int, Lib Bit, Qua Bit, Cond Bit)

Insert #TT Execute sp_getPaletContain @nIDPalet, @cpalet

select * from #TT
drop table #TT



El insert no me funciona, lo demas si. puedo meter la tabla en una
variable tipo cursor, pero me da vacia por que no funciona el cursor.

Saludos.


JCF


Juan Carlos Flores escribió:
Carlos, voy a probarlo ahorita mismo, muchas gracias.


Saludos



JCF

Carlos Sacristán escribió:
Suponiendo que el primer procedimiento almacenado devuelve dos
columnas
(A y B), un ejemplo para manejar estos resultados sería:

***************************************************************















de
datos
que lo que devuelve el primer procedimiento
CREATE TABLE #t ...

INSERT #t
EXECUTE el_primer_procedimiento @param1=















registros
de la
tabla temporal creada

***************************************************************

Espero haberme explicado

Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Juan Carlos Flores"














escribió
en el
mensaje news:#
Me podrías ampliar mas el como hacerlo ? Porque no debo modificar
















el
primer SP, se puede sin hacer eso ?

Saludos


jCF

Carlos Sacristán escribió:
¿No puedes insertar el resultado de ese primer procedimiento


















en
una
tabla temporal y manejar los resultados en el cursor que


















comentas?

Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Juan Carlos Flores"
escribió en




el
mensaje news:e$
Bien, tengo un SP que me devuelve un cursor, ese SP lo uso en




















unos
procedimientos en .net, y lleva buena cantidad de codigo el SP




















en
mención. Resulta que ahora en otro SP necesito usar el cursor












generado
por el primer SP, recorrer sus datos, y no se como hacer para
















cargar
ese
cursor sin tener que usar poner el select del primer dentro del






segundo,
ademas por mantenimiento de codigo es un problema.

Espero haberme explicado.


Saludos


JCF

Gustavo Larriera (MVP) escribió:
No entiendo en detalle lo que intentas hacer. De todas formas
entiendo




que
si usas variables de tipo CURSOR puede ser útil para lo que


















dices.
Tal vez si explicas con más nivel de detalle tu problema


















concreto,
te
podamos ayudar mejor.


























Respuesta Responder a este mensaje
#18 Carlos Sacristán
28/07/2006 - 08:48 | Informe spam
El error que te lanza al intentar insertar los resultados del
procedimiento sp_getPaletContain parece claro, y se refiere a que la
definición de los tipos de datos de la tabla temporal #TT es insuficiente
para almacenar los valores devueltos de sp_getPaletContain.

¿Esa tabla está bien definida? ¿Podrías ampliar el tipo de dato?


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Juan Carlos Flores" escribió en el
mensaje news:
Nop. El SP sp_getPaletContain esta bien, me da los resultados correctos
si lo ejecuto fuera de este otro SP JCPrueba.

En resumen el SP JCPrueba que ha sido el que te pegué anteriormente, me
da el problema justamente en la linea donde intento hacer el insert a la
tabla temporal usando el SP sp_getPaletContain.

Insert #TT Execute sp_getPaletContain @nIDPalet, @cpalet

Gracias Carlos por tu atencion, este asunto me tiene incomodo, se que es
dificil en SQL server el trabajo con cursores o tablas, no es su fuerte,
lastimosamente, pero encuentro engorroso tener que traerme el codigo del
sp_getPaletContain a pegar dentro de el SP JCPrueba.

Saludos y Gracias



JCF


Carlos Sacristán escribió:
> Este código está bien, pero según me comentaste el error estaba en


el
> procedimiento sp_getPaletContain, no?
>
>
> Un saludo
>
> -
> "Sólo sé que no sé nada. " (Sócrates)
>
> "Juan Carlos Flores" escribió en


el
> mensaje news:#
>> En realidad no se ya que poner, aca te copio todo el SP del cual espero
>> obtener columnas con datos... las columnas las obtengo, pero sin datos,
>> porque el problema lo tengo en el INSERT a través de un SP. Si pongo al
>> linea del insert como comentario ya no me da error en la ejecucion. Hal
>> hacer PARSE del codigo, no me da error, el error es solo al ejecutarlo.
>> Lo malo es que no comprendo el mensaje que significa o porque sucede y
>> como solucionarlo.
>>
>>
>>
>>
>>
>> set ANSI_NULLS ON
>> set QUOTED_IDENTIFIER ON
>> go
>>
>> @cPalet nVarchar(10),
>> @nIDPalet int
>>
>> AS
>> BEGIN
>> SET NOCOUNT ON;
>>
>> Create Table #TT (Item nVarchar(10), OProd nVarchar(10), Lbs
>> Numeric(12,2), Qty Int, Lib Bit, Qua Bit, Cond Bit)
>>
>> Insert #TT Execute sp_getPaletContain @nIDPalet, @cpalet
>>
>> select * from #TT
>> drop table #TT
>>
>> END
>>
>>
>>
>> Carlos Sacristán escribió:
>>> Es complicado ayudarte si no posteas el script de los


procedimientos
>>> involucrados...
>>>
>>>
>>> Un saludo
>>>
>>> -
>>> "Sólo sé que no sé nada. " (Sócrates)
>>>
>>> "Juan Carlos Flores" escribió


en
> el
>>> mensaje news:
>>>> Gracias Carlos por la atencion que me has dado.
>>>>
>>>>
>>>> Me da el mensaje:
>>>>
>>>> Msg 8152, Level 16, State 6, Procedure sp_getPaletContain, Line 30
>>>> String or binary data would be truncated.
>>>>
>>>> (1 row(s) affected)
>>>>
>>>>
>>>>
>>>> Si ejecuto solo el SP involucrado me da resultados correctos, que
>>>> debería ser lo mismo en este otro, que es solamente una prueba en


este
>>>> caso, para luego implementarlo en donde si me urge, y es donde espero
>>>> poder tabajar con el cursor resultante.
>>>>
>>>>
>>>> Saludos
>>>>
>>>>
>>>>
>>>> JCF
>>>>
>>>>
>>>> Carlos Sacristán escribió:
>>>>> ¿Y por qué no te funciona? ¿Lanza algún error?
>>>>>
>>>>>
>>>>> Un saludo
>>>>>
>>>>> -
>>>>> "Sólo sé que no sé nada. " (Sócrates)
>>>>>
>>>>> "Juan Carlos Flores"


escribió
> en
>>> el
>>>>> mensaje news:
>>>>>> No me ha funcionado he hecho lo siguiente :
>>>>>>
>>>>>>
>>>>>> Create Table #TT (Item nVarchar(10), OProd nVarchar(10), Lbs
>>>>>> Numeric(12,2), Qty Int, Lib Bit, Qua Bit, Cond Bit)
>>>>>>
>>>>>> Insert #TT Execute sp_getPaletContain @nIDPalet, @cpalet
>>>>>>
>>>>>> select * from #TT
>>>>>> drop table #TT
>>>>>>
>>>>>>
>>>>>>
>>>>>> El insert no me funciona, lo demas si. puedo meter la tabla en una
>>>>>> variable tipo cursor, pero me da vacia por que no funciona el


cursor.
>>>>>>
>>>>>> Saludos.
>>>>>>
>>>>>>
>>>>>> JCF
>>>>>>
>>>>>>
>>>>>> Juan Carlos Flores escribió:
>>>>>>> Carlos, voy a probarlo ahorita mismo, muchas gracias.
>>>>>>>
>>>>>>>
>>>>>>> Saludos
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> JCF
>>>>>>>
>>>>>>> Carlos Sacristán escribió:
>>>>>>>> Suponiendo que el primer procedimiento almacenado devuelve


dos
>>>>>>>> columnas
>>>>>>>> (A y B), un ejemplo para manejar estos resultados sería:
>>>>>>>>
>>>>>>>> ***************************************************************
>>>>>>>>
> de
>>>>>>>> datos
>>>>>>>> que lo que devuelve el primer procedimiento
>>>>>>>> CREATE TABLE #t ...
>>>>>>>>
>>>>>>>> INSERT #t
>>>>>>>> EXECUTE el_primer_procedimiento @param1=
>>>>>>>>
> registros
>>>>>>>> de la
>>>>>>>> tabla temporal creada
>>>>>>>>
>>>>>>>> ***************************************************************
>>>>>>>>
>>>>>>>> Espero haberme explicado
>>>>>>>>
>>>>>>>> Un saludo
>>>>>>>>
>>>>>>>> -
>>>>>>>> "Sólo sé que no sé nada. " (Sócrates)
>>>>>>>>
>>>>>>>> "Juan Carlos Flores"
> escribió
>>>>>>>> en el
>>>>>>>> mensaje news:#
>>>>>>>>> Me podrías ampliar mas el como hacerlo ? Porque no debo


modificar
> el
>>>>>>>>> primer SP, se puede sin hacer eso ?
>>>>>>>>>
>>>>>>>>> Saludos
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> jCF
>>>>>>>>>
>>>>>>>>> Carlos Sacristán escribió:
>>>>>>>>>> ¿No puedes insertar el resultado de ese primer


procedimiento
> en
>>>>> una
>>>>>>>>>> tabla temporal y manejar los resultados en el cursor que
> comentas?
>>>>>>>>>>
>>>>>>>>>> Un saludo
>>>>>>>>>>
>>>>>>>>>> -
>>>>>>>>>> "Sólo sé que no sé nada. " (Sócrates)
>>>>>>>>>>
>>>>>>>>>> "Juan Carlos Flores"
>>>>>>>>>> escribió en
>>>>>>>> el
>>>>>>>>>> mensaje news:e$
>>>>>>>>>>> Bien, tengo un SP que me devuelve un cursor, ese SP lo uso en
> unos
>>>>>>>>>>> procedimientos en .net, y lleva buena cantidad de codigo el SP
> en
>>>>>>>>>>> mención. Resulta que ahora en otro SP necesito usar el cursor
>>>>> generado
>>>>>>>>>>> por el primer SP, recorrer sus datos, y no se como hacer para
>>> cargar
>>>>>>>> ese
>>>>>>>>>>> cursor sin tener que usar poner el select del primer dentro


del
>>>>>>>> segundo,
>>>>>>>>>>> ademas por mantenimiento de codigo es un problema.
>>>>>>>>>>>
>>>>>>>>>>> Espero haberme explicado.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Saludos
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> JCF
>>>>>>>>>>>
>>>>>>>>>>> Gustavo Larriera (MVP) escribió:
>>>>>>>>>>>> No entiendo en detalle lo que intentas hacer. De todas formas
>>>>>>>>>>>> entiendo
>>>>>>>>>> que
>>>>>>>>>>>> si usas variables de tipo CURSOR puede ser útil para lo que
>>> dices.
>>>>>>>>>>>> Tal vez si explicas con más nivel de detalle tu problema
>>> concreto,
>>>>> te
>>>>>>>>>>>> podamos ayudar mejor.
>>>>>>>>>>>>
>>>
>
>
Respuesta Responder a este mensaje
#19 Juan Carlos Flores
28/07/2006 - 16:00 | Informe spam
Ya ! Gracias, 1024 gracias hermano, eso era justamente !!.

Create Table #TT (Item nVarchar(10), OProd nVarchar(10), Lbs
Numeric(12,2), Qty Int, Lib Bit, Qua Bit, Cond Bit)

Resulta que el campo ITEM es de 15 pero no creo que eso diera problemas,
pero el campo LBS en el SP_GetPaletContain es el resultado de
multiplicar 2 campos, el peso unitario del producto x la cantidad, yo
asumí que el peso fuese NUMERICO y la cantidad entero, pero resulta que
el peso es tipo MONEY, fue un concepto que alguien puso de que los
numeros era mejor manejarlos en tipos numericos, asi que la solucion fue
hacer el cambio a tipo money del campo Lbs quedando así.:

Create Table #TT (Item nVarchar(15), OProd nVarchar(10), Lbs Money,
Qty Int, Lib Bit, Qua Bit, Cond Bit)


Te estoy muy agradecido, imagino lo dificil que ha sido comprenderme,
espero algun día devolver eso a ti o en ayuda a otro.



Carlos Sacristán escribió:
El error que te lanza al intentar insertar los resultados del
procedimiento sp_getPaletContain parece claro, y se refiere a que la
definición de los tipos de datos de la tabla temporal #TT es insuficiente
para almacenar los valores devueltos de sp_getPaletContain.

¿Esa tabla está bien definida? ¿Podrías ampliar el tipo de dato?


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Juan Carlos Flores" escribió en el
mensaje news:
Nop. El SP sp_getPaletContain esta bien, me da los resultados correctos
si lo ejecuto fuera de este otro SP JCPrueba.

En resumen el SP JCPrueba que ha sido el que te pegué anteriormente, me
da el problema justamente en la linea donde intento hacer el insert a la
tabla temporal usando el SP sp_getPaletContain.

Insert #TT Execute sp_getPaletContain @nIDPalet, @cpalet

Gracias Carlos por tu atencion, este asunto me tiene incomodo, se que es
dificil en SQL server el trabajo con cursores o tablas, no es su fuerte,
lastimosamente, pero encuentro engorroso tener que traerme el codigo del
sp_getPaletContain a pegar dentro de el SP JCPrueba.

Saludos y Gracias



JCF


Carlos Sacristán escribió:
Este código está bien, pero según me comentaste el error estaba en




el
procedimiento sp_getPaletContain, no?


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Juan Carlos Flores" escribió en




el
mensaje news:#
En realidad no se ya que poner, aca te copio todo el SP del cual espero
obtener columnas con datos... las columnas las obtengo, pero sin datos,
porque el problema lo tengo en el INSERT a través de un SP. Si pongo al
linea del insert como comentario ya no me da error en la ejecucion. Hal
hacer PARSE del codigo, no me da error, el error es solo al ejecutarlo.
Lo malo es que no comprendo el mensaje que significa o porque sucede y
como solucionarlo.





set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

@cPalet nVarchar(10),
@nIDPalet int

AS
BEGIN
SET NOCOUNT ON;

Create Table #TT (Item nVarchar(10), OProd nVarchar(10), Lbs
Numeric(12,2), Qty Int, Lib Bit, Qua Bit, Cond Bit)

Insert #TT Execute sp_getPaletContain @nIDPalet, @cpalet

select * from #TT
drop table #TT

END



Carlos Sacristán escribió:
Es complicado ayudarte si no posteas el script de los








procedimientos
involucrados...


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Juan Carlos Flores" escribió








en
el
mensaje news:
Gracias Carlos por la atencion que me has dado.


Me da el mensaje:

Msg 8152, Level 16, State 6, Procedure sp_getPaletContain, Line 30
String or binary data would be truncated.

(1 row(s) affected)



Si ejecuto solo el SP involucrado me da resultados correctos, que
debería ser lo mismo en este otro, que es solamente una prueba en










este
caso, para luego implementarlo en donde si me urge, y es donde espero
poder tabajar con el cursor resultante.


Saludos



JCF


Carlos Sacristán escribió:
¿Y por qué no te funciona? ¿Lanza algún error?


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Juan Carlos Flores"












escribió
en
el
mensaje news:
No me ha funcionado he hecho lo siguiente :


Create Table #TT (Item nVarchar(10), OProd nVarchar(10), Lbs
Numeric(12,2), Qty Int, Lib Bit, Qua Bit, Cond Bit)

Insert #TT Execute sp_getPaletContain @nIDPalet, @cpalet

select * from #TT
drop table #TT



El insert no me funciona, lo demas si. puedo meter la tabla en una
variable tipo cursor, pero me da vacia por que no funciona el














cursor.
Saludos.


JCF


Juan Carlos Flores escribió:
Carlos, voy a probarlo ahorita mismo, muchas gracias.


Saludos



JCF

Carlos Sacristán escribió:
Suponiendo que el primer procedimiento almacenado devuelve


















dos
columnas
(A y B), un ejemplo para manejar estos resultados sería:

***************************************************************















de
datos
que lo que devuelve el primer procedimiento
CREATE TABLE #t ...

INSERT #t
EXECUTE el_primer_procedimiento @param1=















registros
de la
tabla temporal creada

***************************************************************

Espero haberme explicado

Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Juan Carlos Flores"














escribió
en el
mensaje news:#
Me podrías ampliar mas el como hacerlo ? Porque no debo




















modificar
el
primer SP, se puede sin hacer eso ?

Saludos


jCF

Carlos Sacristán escribió:
¿No puedes insertar el resultado de ese primer






















procedimiento
en
una
tabla temporal y manejar los resultados en el cursor que


















comentas?

Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Juan Carlos Flores"
escribió en




el
mensaje news:e$
Bien, tengo un SP que me devuelve un cursor, ese SP lo uso en




















unos
procedimientos en .net, y lleva buena cantidad de codigo el SP




















en
mención. Resulta que ahora en otro SP necesito usar el cursor












generado
por el primer SP, recorrer sus datos, y no se como hacer para
















cargar
ese
cursor sin tener que usar poner el select del primer dentro
























del
segundo,
ademas por mantenimiento de codigo es un problema.

Espero haberme explicado.


Saludos


JCF

Gustavo Larriera (MVP) escribió:
No entiendo en detalle lo que intentas hacer. De todas formas
entiendo




que
si usas variables de tipo CURSOR puede ser útil para lo que


















dices.
Tal vez si explicas con más nivel de detalle tu problema


















concreto,
te
podamos ayudar mejor.






























Respuesta Responder a este mensaje
#20 Carlos Sacristán
31/07/2006 - 08:25 | Informe spam
De nada, aquí estamos todos para aprender, así que seguro que en algún
momento podrás devolver el favor


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"Juan Carlos Flores" escribió en el
mensaje news:#
Ya ! Gracias, 1024 gracias hermano, eso era justamente !!.

Create Table #TT (Item nVarchar(10), OProd nVarchar(10), Lbs
Numeric(12,2), Qty Int, Lib Bit, Qua Bit, Cond Bit)

Resulta que el campo ITEM es de 15 pero no creo que eso diera problemas,
pero el campo LBS en el SP_GetPaletContain es el resultado de
multiplicar 2 campos, el peso unitario del producto x la cantidad, yo
asumí que el peso fuese NUMERICO y la cantidad entero, pero resulta que
el peso es tipo MONEY, fue un concepto que alguien puso de que los
numeros era mejor manejarlos en tipos numericos, asi que la solucion fue
hacer el cambio a tipo money del campo Lbs quedando así.:

Create Table #TT (Item nVarchar(15), OProd nVarchar(10), Lbs Money,
Qty Int, Lib Bit, Qua Bit, Cond Bit)


Te estoy muy agradecido, imagino lo dificil que ha sido comprenderme,
espero algun día devolver eso a ti o en ayuda a otro.



Carlos Sacristán escribió:
> El error que te lanza al intentar insertar los resultados del
> procedimiento sp_getPaletContain parece claro, y se refiere a que la
> definición de los tipos de datos de la tabla temporal #TT es


insuficiente
> para almacenar los valores devueltos de sp_getPaletContain.
>
> ¿Esa tabla está bien definida? ¿Podrías ampliar el tipo de dato?
>
>
> Un saludo
>
> -
> "Sólo sé que no sé nada. " (Sócrates)
>
> "Juan Carlos Flores" escribió en


el
> mensaje news:
>> Nop. El SP sp_getPaletContain esta bien, me da los resultados correctos
>> si lo ejecuto fuera de este otro SP JCPrueba.
>>
>> En resumen el SP JCPrueba que ha sido el que te pegué anteriormente, me
>> da el problema justamente en la linea donde intento hacer el insert a


la
>> tabla temporal usando el SP sp_getPaletContain.
>>
>> Insert #TT Execute sp_getPaletContain @nIDPalet, @cpalet
>>
>> Gracias Carlos por tu atencion, este asunto me tiene incomodo, se que


es
>> dificil en SQL server el trabajo con cursores o tablas, no es su


fuerte,
>> lastimosamente, pero encuentro engorroso tener que traerme el codigo


del
>> sp_getPaletContain a pegar dentro de el SP JCPrueba.
>>
>> Saludos y Gracias
>>
>>
>>
>> JCF
>>
>>
>> Carlos Sacristán escribió:
>>> Este código está bien, pero según me comentaste el error estaba en
> el
>>> procedimiento sp_getPaletContain, no?
>>>
>>>
>>> Un saludo
>>>
>>> -
>>> "Sólo sé que no sé nada. " (Sócrates)
>>>
>>> "Juan Carlos Flores" escribió


en
> el
>>> mensaje news:#
>>>> En realidad no se ya que poner, aca te copio todo el SP del cual


espero
>>>> obtener columnas con datos... las columnas las obtengo, pero sin


datos,
>>>> porque el problema lo tengo en el INSERT a través de un SP. Si pongo


al
>>>> linea del insert como comentario ya no me da error en la ejecucion.


Hal
>>>> hacer PARSE del codigo, no me da error, el error es solo al


ejecutarlo.
>>>> Lo malo es que no comprendo el mensaje que significa o porque sucede


y
>>>> como solucionarlo.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> set ANSI_NULLS ON
>>>> set QUOTED_IDENTIFIER ON
>>>> go
>>>>
>>>> @cPalet nVarchar(10),
>>>> @nIDPalet int
>>>>
>>>> AS
>>>> BEGIN
>>>> SET NOCOUNT ON;
>>>>
>>>> Create Table #TT (Item nVarchar(10), OProd nVarchar(10), Lbs
>>>> Numeric(12,2), Qty Int, Lib Bit, Qua Bit, Cond Bit)
>>>>
>>>> Insert #TT Execute sp_getPaletContain @nIDPalet, @cpalet
>>>>
>>>> select * from #TT
>>>> drop table #TT
>>>>
>>>> END
>>>>
>>>>
>>>>
>>>> Carlos Sacristán escribió:
>>>>> Es complicado ayudarte si no posteas el script de los
> procedimientos
>>>>> involucrados...
>>>>>
>>>>>
>>>>> Un saludo
>>>>>
>>>>> -
>>>>> "Sólo sé que no sé nada. " (Sócrates)
>>>>>
>>>>> "Juan Carlos Flores"


escribió
> en
>>> el
>>>>> mensaje news:
>>>>>> Gracias Carlos por la atencion que me has dado.
>>>>>>
>>>>>>
>>>>>> Me da el mensaje:
>>>>>>
>>>>>> Msg 8152, Level 16, State 6, Procedure sp_getPaletContain, Line 30
>>>>>> String or binary data would be truncated.
>>>>>>
>>>>>> (1 row(s) affected)
>>>>>>
>>>>>>
>>>>>>
>>>>>> Si ejecuto solo el SP involucrado me da resultados correctos, que
>>>>>> debería ser lo mismo en este otro, que es solamente una prueba en
> este
>>>>>> caso, para luego implementarlo en donde si me urge, y es donde


espero
>>>>>> poder tabajar con el cursor resultante.
>>>>>>
>>>>>>
>>>>>> Saludos
>>>>>>
>>>>>>
>>>>>>
>>>>>> JCF
>>>>>>
>>>>>>
>>>>>> Carlos Sacristán escribió:
>>>>>>> ¿Y por qué no te funciona? ¿Lanza algún error?
>>>>>>>
>>>>>>>
>>>>>>> Un saludo
>>>>>>>
>>>>>>> -
>>>>>>> "Sólo sé que no sé nada. " (Sócrates)
>>>>>>>
>>>>>>> "Juan Carlos Flores"
> escribió
>>> en
>>>>> el
>>>>>>> mensaje news:
>>>>>>>> No me ha funcionado he hecho lo siguiente :
>>>>>>>>
>>>>>>>>
>>>>>>>> Create Table #TT (Item nVarchar(10), OProd nVarchar(10), Lbs
>>>>>>>> Numeric(12,2), Qty Int, Lib Bit, Qua Bit, Cond Bit)
>>>>>>>>
>>>>>>>> Insert #TT Execute sp_getPaletContain @nIDPalet, @cpalet
>>>>>>>>
>>>>>>>> select * from #TT
>>>>>>>> drop table #TT
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> El insert no me funciona, lo demas si. puedo meter la tabla en


una
>>>>>>>> variable tipo cursor, pero me da vacia por que no funciona el
> cursor.
>>>>>>>> Saludos.
>>>>>>>>
>>>>>>>>
>>>>>>>> JCF
>>>>>>>>
>>>>>>>>
>>>>>>>> Juan Carlos Flores escribió:
>>>>>>>>> Carlos, voy a probarlo ahorita mismo, muchas gracias.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Saludos
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> JCF
>>>>>>>>>
>>>>>>>>> Carlos Sacristán escribió:
>>>>>>>>>> Suponiendo que el primer procedimiento almacenado devuelve
> dos
>>>>>>>>>> columnas
>>>>>>>>>> (A y B), un ejemplo para manejar estos resultados sería:
>>>>>>>>>>
>>>>>>>>>> ***************************************************************
>>>>>>>>>>


tipo
>>> de
>>>>>>>>>> datos
>>>>>>>>>> que lo que devuelve el primer procedimiento
>>>>>>>>>> CREATE TABLE #t ...
>>>>>>>>>>
>>>>>>>>>> INSERT #t
>>>>>>>>>> EXECUTE el_primer_procedimiento @param1=
>>>>>>>>>>
>>> registros
>>>>>>>>>> de la
>>>>>>>>>> tabla temporal creada
>>>>>>>>>>
>>>>>>>>>> ***************************************************************
>>>>>>>>>>
>>>>>>>>>> Espero haberme explicado
>>>>>>>>>>
>>>>>>>>>> Un saludo
>>>>>>>>>>
>>>>>>>>>> -
>>>>>>>>>> "Sólo sé que no sé nada. " (Sócrates)
>>>>>>>>>>
>>>>>>>>>> "Juan Carlos Flores"
>>> escribió
>>>>>>>>>> en el
>>>>>>>>>> mensaje news:#
>>>>>>>>>>> Me podrías ampliar mas el como hacerlo ? Porque no debo
> modificar
>>> el
>>>>>>>>>>> primer SP, se puede sin hacer eso ?
>>>>>>>>>>>
>>>>>>>>>>> Saludos
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> jCF
>>>>>>>>>>>
>>>>>>>>>>> Carlos Sacristán escribió:
>>>>>>>>>>>> ¿No puedes insertar el resultado de ese primer
> procedimiento
>>> en
>>>>>>> una
>>>>>>>>>>>> tabla temporal y manejar los resultados en el cursor que
>>> comentas?
>>>>>>>>>>>>
>>>>>>>>>>>> Un saludo
>>>>>>>>>>>>
>>>>>>>>>>>> -
>>>>>>>>>>>> "Sólo sé que no sé nada. " (Sócrates)
>>>>>>>>>>>>
>>>>>>>>>>>> "Juan Carlos Flores"
>>>>>>>>>>>> escribió en
>>>>>>>>>> el
>>>>>>>>>>>> mensaje news:e$
>>>>>>>>>>>>> Bien, tengo un SP que me devuelve un cursor, ese SP lo uso


en
>>> unos
>>>>>>>>>>>>> procedimientos en .net, y lleva buena cantidad de codigo el


SP
>>> en
>>>>>>>>>>>>> mención. Resulta que ahora en otro SP necesito usar el


cursor
>>>>>>> generado
>>>>>>>>>>>>> por el primer SP, recorrer sus datos, y no se como hacer


para
>>>>> cargar
>>>>>>>>>> ese
>>>>>>>>>>>>> cursor sin tener que usar poner el select del primer dentro
> del
>>>>>>>>>> segundo,
>>>>>>>>>>>>> ademas por mantenimiento de codigo es un problema.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Espero haberme explicado.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Saludos
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> JCF
>>>>>>>>>>>>>
>>>>>>>>>>>>> Gustavo Larriera (MVP) escribió:
>>>>>>>>>>>>>> No entiendo en detalle lo que intentas hacer. De todas


formas
>>>>>>>>>>>>>> entiendo
>>>>>>>>>>>> que
>>>>>>>>>>>>>> si usas variables de tipo CURSOR puede ser útil para lo que
>>>>> dices.
>>>>>>>>>>>>>> Tal vez si explicas con más nivel de detalle tu problema
>>>>> concreto,
>>>>>>> te
>>>>>>>>>>>>>> podamos ayudar mejor.
>>>>>>>>>>>>>>
>>>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida