Código HTML:
Declare Grupos Cursor For select cve_grupo from sys_gruposusers where nombre=@usuario Declare Grupos2 Cursor For select cve_grupo from sys_gruposusers where nombre=@usuario
(Se puede ocupar un mismo cursos para ambas acciones? estrictamente habalndo hacen lo mismo, que me sugieren?)
Código HTML:
Open Grupos Fetch Next From Grupos Into @ui_grupo While @@Fetch_Status = 0 Begin --print('ui_Grupo : ' + @ui_grupo); set @condicion = N'' + @condicion + ' or usuario='''+@ui_grupo+''''; Fetch Next From Grupos Into @ui_grupo End Close Grupos Deallocate Grupos ------------- Open Grupos2 Fetch Next From Grupos2 Into @ui_grupo_2 While @@Fetch_Status = 0 Begin ------------------------------ set @aux_query = N'select @aux=count(cve_empresa) from doc_plantillas_seguridad where usuario='''+@ui_grupo_2+''''; Execute sp_executesql @aux_query,N'@aux int output',@empresa_num output; --print('...aux_query : ' + @aux_query); if @empresa_num>0 begin set @query = N'' + @query + 'select cve_docto,nombre from sys_tipos_doctos where Cve_Docto <> ''CA'' and cve_docto in'+ N' (select cve_plantilla from doc_plantillas_seguridad_usr where usuario='''+@ui_grupo_2+''' and usuario in'+ N' (select usuario from doc_plantillas_seguridad where cve_empresa='''+@cve_empresa+''')) UNION '; --print('Query IF 2 : ' + @query); end else begin set @query = N'' + @query + 'select cve_docto,nombre from sys_tipos_doctos where Cve_Docto <> ''CA'' and cve_docto in'+ N' (select cve_plantilla from doc_plantillas_seguridad_usr where usuario='''+@ui_grupo_2+''') UNION '; --print('Query ELSE 2 : ' + @query); end ------------------------------ Fetch Next From Grupos2 Into @ui_grupo_2 End Close Grupos2 Deallocate Grupos2