obtener en un cursor conjunto de registros devueltos por un sp

09/08/2004 - 19:27 por Fernando Vaca | Informe spam
Hola grupo y gracias de antemano por su tiempo, mi duda la explico con el
sgte ejemplo(el ejemplo es solo ilustrativo)

DECLARE Ciudad_Cursor CURSOR FOR

exec SP_Leer_ciudad
@I_pais =1

OPEN Ciudad_Cursor

FETCH NEXT FROM Ciudad_Cursor
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM Ciudad_Cursor
END

CLOSE Ciudad_Cursor
DEALLOCATE Ciudad_Cursor


la pregunta es como puedo obtener en un CURSOR registro(s) devueltos por un
SP (SP_Leer_ciudad).

Gracias de antemano
Fernando

Preguntas similare

Leer las respuestas

#1 Javier Loria
10/08/2004 - 03:52 | Informe spam
Hola Fernando:
En principio no puedes, o no directamente.
SQL no permite hacer esto directamente deberas hacer un
==INSERT INTO #TablaXXX
EXEC SP_Leer_Ciudad @I_Pais=1
== Y luego hacer el curso basado en un SELECT sobre la TablaXXX
Estas claro que lo que estas haciendo es terriblemente lento (de 100 a
10,000 mas lento) que hacerlo en "SQL" sin usar cursor.
Si nos envias el esquema de la tablas y lo que quires hacer con gusto te
ayudamos, sin usar el cursor y veras la diferencia en velocidad.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Fernando Vaca" wrote in message
news:
Hola grupo y gracias de antemano por su tiempo, mi duda la explico con el
sgte ejemplo(el ejemplo es solo ilustrativo)

DECLARE Ciudad_Cursor CURSOR FOR

exec SP_Leer_ciudad
@I_pais =1

OPEN Ciudad_Cursor

FETCH NEXT FROM Ciudad_Cursor
WHILE @@FETCH_STATUS = 0
BEGIN
FETCH NEXT FROM Ciudad_Cursor
END

CLOSE Ciudad_Cursor
DEALLOCATE Ciudad_Cursor


la pregunta es como puedo obtener en un CURSOR registro(s) devueltos por


un
SP (SP_Leer_ciudad).

Gracias de antemano
Fernando


Respuesta Responder a este mensaje
#2 Fernando Vaca
10/08/2004 - 18:24 | Informe spam
Gracias Javier, estoy de acuerdo con tigo que sera un poco mas lento, pero
ocurre que tengo varios sp de este tipo que leen tablas parametros que los
utilizaba en vb y ahora estoy programando todo en los sp (no en vb) y no
tengo que permitir que los sp devuelvan datos(registros) asi que los asigno
a variables, por eso estoy viendo la forma de si puedo utilizar CURSORES.
Por ej SP_Obtener_datos_cliente @I_cliente% devuelve un registro con los
datos de un cliente.
Trato de hacer esto para evitar copiar el codigo del SP a mis programas.

"Javier Loria" escribió en el mensaje
news:
Hola Fernando:
En principio no puedes, o no directamente.
SQL no permite hacer esto directamente deberas hacer un
==> INSERT INTO #TablaXXX
EXEC SP_Leer_Ciudad @I_Pais=1
==> Y luego hacer el curso basado en un SELECT sobre la TablaXXX
Estas claro que lo que estas haciendo es terriblemente lento (de 100 a
10,000 mas lento) que hacerlo en "SQL" sin usar cursor.
Si nos envias el esquema de la tablas y lo que quires hacer con gusto


te
ayudamos, sin usar el cursor y veras la diferencia en velocidad.
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"Fernando Vaca" wrote in message
news:
> Hola grupo y gracias de antemano por su tiempo, mi duda la explico con


el
> sgte ejemplo(el ejemplo es solo ilustrativo)
>
> DECLARE Ciudad_Cursor CURSOR FOR
>
> exec SP_Leer_ciudad
> @I_pais =1
>
> OPEN Ciudad_Cursor
>
> FETCH NEXT FROM Ciudad_Cursor
> WHILE @@FETCH_STATUS = 0
> BEGIN
> FETCH NEXT FROM Ciudad_Cursor
> END
>
> CLOSE Ciudad_Cursor
> DEALLOCATE Ciudad_Cursor
>
>
> la pregunta es como puedo obtener en un CURSOR registro(s) devueltos por
un
> SP (SP_Leer_ciudad).
>
> Gracias de antemano
> Fernando
>
>


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