Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Manejo de errores en cursor

Estas en el tema de Manejo de errores en cursor en el foro de SQL Server en Foros del Web. Buenas, tengo el siguiente problema. Estoy trabajando con un stored procedure, que entre otras cosas llena una tabla con un cursor. Este sp tiene manejo ...
  #1 (permalink)  
Antiguo 18/08/2010, 13:31
 
Fecha de Ingreso: agosto-2008
Mensajes: 14
Antigüedad: 15 años, 8 meses
Puntos: 0
Manejo de errores en cursor

Buenas, tengo el siguiente problema. Estoy trabajando con un stored procedure, que entre otras cosas llena una tabla con un cursor. Este sp tiene manejo de errores con un try catch, en el cual limpio tablas temporales y ese tipo de cosas. Lo que no se es alguna sentencia para ver si el cursor esta abierto, esto es porque a veces los errores se producen antes de abrir cursor o dentro del codigo de dicho cursor, por lo tanto para hacer:
Código:
close mycursor; deallocate mycursor
y asi cerrarlo a mi cursor, este debe estar abierto sino logicamente da error.
Estuve investigando y no se si la solucion viene usando el sp
Código:
master.dbo.sp_cursor_list
o algun otro sp del sql..

Gracias
  #2 (permalink)  
Antiguo 18/08/2010, 15:09
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Manejo de errores en cursor

¿Es necesario el uso de un Cursor?
  #3 (permalink)  
Antiguo 18/08/2010, 16:47
 
Fecha de Ingreso: agosto-2008
Mensajes: 14
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Manejo de errores en cursor

Si, porque en realidad este problema lo tengo en varios sp del sistema, para simplificar dije que se llenaba una tabla, pero en realidad dentro de los cursores se hacen llamadas a otros sp, a funciones y otras variantes mas. Se que se puede simular el cursor con un while y haciendo un top 1 al select, pero eso me implicaria mas cambio, ya que son muchos los sp's, y el rendimiento tengo entendido que es menor.
  #4 (permalink)  
Antiguo 19/08/2010, 11:13
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Manejo de errores en cursor

El cursor se crea en memoria, por eso la sugerencia de NO utilizar cursores

En cuanto a tu duda, checa este codigo:

Código SQL:
Ver original
  1. DECLARE crInv CURSOR FOR
  2. SELECT * FROM COLOR
  3.  
  4. IF Cursor_Status('local','crInv')>0 BEGIN
  5.     CLOSE crInv
  6.     DEALLOCATE crInv
  7. END

Última edición por iislas; 19/08/2010 a las 11:23

Etiquetas: cursor, manejo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:25.