Problema con Cursor

19/08/2004 - 05:05 por ChAtEiToR | Informe spam
Estimados,
Tengo un SP (p1) que tiene 2 cursores (los abre y luego
los cierra y libera), al final del SP, llama a otro SP
(sp2) que a su vez realiza una serie de procesos y crea
otro cursor, en éste último por alguna extraña razón no
entra al cursor, el FETCH_STATUS siempre está en -1,
incluso le puse un print del status al entrar al SP (sp2),
antes de hacer nada, ni siquiera creado el nuevo cursor y
ya cerrado y liberado los anteriores, y ya viene con el
valor -1, como tengo un While @@Fetch_Status = 0 nunca
entra. Esto me esta sucediendo desde que se realizó una
actualización al servidor, antes de eso me funcionaba
perfectamente. Existe alguna forma de Resetear los valores
del Fetch Status o limpiarlo?, hay que setear algo
especial en el server para que corra?, cuál puede ser el
problema?
PD: El select que realizo SIEMPRE me devuelve datos, por
lo tanto el cursor nunca es BOF o EOF.

Espero sus comentarios.
Saludos.
Cristian.
 

Leer las respuestas

#1 Maxi
19/08/2004 - 14:18 | Informe spam
Hola, bueno primero estamos ante un gran problema: EL uso de cursores!!!

SqlServer no esta pensado y mucho menos optimizado para trabajar con
cursores, hay que tratar de trabajar con conjunto de datos y no registro a
registro :-)

Esto es muy comun cuando un desarrollador empieza a programar en Sql y
piensa que es lo mismo que en VB por ej!!

Bue hay que cambiar un poco la forma de pensar asi los procesos que hagamos
dentro del Sql puedan ser lo mas optimos posibles :-)

Porque no nos cuentas que buscas hacer y no como lo queres hacer, y te puedo
decir que muchos aqui estaran muy dispuestos a ayudarte y mucho mas a
eliminar un cursor :-)


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"ChAtEiToR" escribió en el mensaje
news:8eae01c48599$6a37d170$
Estimados,
Tengo un SP (p1) que tiene 2 cursores (los abre y luego
los cierra y libera), al final del SP, llama a otro SP
(sp2) que a su vez realiza una serie de procesos y crea
otro cursor, en éste último por alguna extraña razón no
entra al cursor, el FETCH_STATUS siempre está en -1,
incluso le puse un print del status al entrar al SP (sp2),
antes de hacer nada, ni siquiera creado el nuevo cursor y
ya cerrado y liberado los anteriores, y ya viene con el
valor -1, como tengo un While @@Fetch_Status = 0 nunca
entra. Esto me esta sucediendo desde que se realizó una
actualización al servidor, antes de eso me funcionaba
perfectamente. Existe alguna forma de Resetear los valores
del Fetch Status o limpiarlo?, hay que setear algo
especial en el server para que corra?, cuál puede ser el
problema?
PD: El select que realizo SIEMPRE me devuelve datos, por
lo tanto el cursor nunca es BOF o EOF.

Espero sus comentarios.
Saludos.
Cristian.



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.740 / Virus Database: 494 - Release Date: 17/08/2004

Preguntas similares