Ver Mensaje Individual
  #3 (permalink)  
Antiguo 02/06/2009, 12:56
develoser
 
Fecha de Ingreso: mayo-2009
Ubicación: Loreto, Zacatecas, México.
Mensajes: 10
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Manejo de Cursor con Instruccion en cadena

Como alguna vez me surgió el mismo problema y fue muy desagradable jejeje aquí les pongo mi código:

--Agregamos el select y from original
set @SQL_select = ' Select A.Clv_Factura,A.FACTURA,A.Fecha,A.periodoPagadoIni ,
A.periodoPagadoFin,a.statusAnt,A.imp_proporcional,
A.columnaEnReporte,A.importe,A.Serie,A.DescuentoNe t,A.Cancelada,a.cajera ,a.Cliente,a.sucursal,a.caja, a.Total_Puntos, c.Nombre, F.Nombre,X.Descripcion
From fACTURAS A
left outer join Sucursales C on C.Clv_Sucursal=A.sucursal left outer join Usuarios F on F.Clv_usuario=a.cajera left outer join CatalogoCajas X on X.Clave=A.Caja
Where (A.Fecha>=@FechaIni and A.Fecha<=@FechaFin) and A.Tipo=''C'' '
--Cargamos el filtro por cajera si es que estamos en logitel
set @SQL_Master = @SQL_select + @SQL_where_filtro
--Ejecutamos el cursor dentro del exec para realizar la consulta dinámica (soo de esa forma se logra conseguir...)
set @str_cursor =
'Declare Cursor_1 Cursor
Local Forward_Only Static Read_Only
For ' + @SQL_Master + ' Open Cursor_1
Fetch Next from Cursor_1
Into @Clv_Factura,@Factura,@Fecha,@periodoPagadoIni,@pe riodoPagadoFin,@statusAnt,@imp_proporcional,@colum naEnReporte,@fac_importe,@Serie,@DescuentoNet,@Can celada,@Cajera,@Contrato,@Sucursal,@Caja, @Total_Puntos, @Nombre_suc,@NomCajera,@NomCaja
'
--Ejecutamos el cursor con la consulta dinámica aplicando el Filtro
exec (@str_cursor)