Newsgrupos.com  

Retroceder   Newsgrupos.com > Forum > Newsgroup microsoft.public.es.* 1 Foro > Newsgroup microsoft.public.es.sqlserver
Registrarse Preguntas Frecuentes Lista de Foreros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos


Respuesta
 
LinkBack Herramientas Desplegado
  #1 (permalink)  
Antiguo 06-01-2009, 22:20:13
arturohm
 
Mensajes: n/a
Predeterminado if exists syntax - consulta

Buenos dias,

tengo el siguiente SP, cuando pruebo bloque x bloque funciona
correctamente, pero cuando ejecuto o pruebo todo el SP, no obtengo
nada como resultado, los parametos que ingresan son de la forma:
"usuario1" y "Carpeta\archivo.ext" y como resultado de salida debo
obtener 1 o 0, pero no obtengo nada, cualquier ayuda lo agradeceria
mucho:


ALTER PROCEDURE [dbo].[USP_PERFIL_VERIFICAR]
(
***USUARIO VARCHAR(24),
***FORM VARCHAR(256),
***RES INT OUTPUT
)
AS
BEGIN

DECLARE ***VARPERFIL INT,***VARAPLICACION INT;
--1er bloque
SET ***VARPERFIL = (SELECT CONVERT(INT ,RTRIM(USUARIOS.PERFILID))
FROM USUARIOS
WHERE ESTADO = 1 AND RTRIM(USUARIOS.USUARIO) = ***USUARIO)
--2do bloque
SET ***VARAPLICACION = (SELECT APLICACIONES.APLICACIONID
FROM APLICACIONES
WHERE ESTADO = 1 AND RTRIM(APLICACIONES.RUTA) = ***FORM)
--3er bloque
IF EXISTS(
SELECT ACCESOS.PERFILID,ACCESOS.APLICACIONID
FROM ACCESOS
WHERE ACCESOS.PERFILID = ***VARPERFIL AND ACCESOS.APLICACIONID =
***VARAPLICACION AND
ACCESOS.ESTADO = 1
)
BEGIN
SET ***RES = 1
END
ELSE
BEGIN
SET ***RES = 0
END

END
GO
Responder Con Cita
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Newsgrupos.com
Standard Sponsored Links

  #2 (permalink)  
Antiguo 07-01-2009, 00:54:03
Alejandro Mesa
 
Mensajes: n/a
Predeterminado RE: if exists syntax - consulta

No veo ningun error a primera vista. Lo unico seria agregar "set nocount on"
como primera instrucion para evitar que el mensaje de filas afectadas sea
devuelto a la aplicacion cliente y tengas que recorrer mas de un resultado.

Tambien puedes usar las dos primeras sentencias directamente con la ultima.

ALTER PROCEDURE [dbo].[USP_PERFIL_VERIFICAR]
(
***USUARIO VARCHAR(24),
***FORM VARCHAR(256),
***RES INT OUTPUT
)
AS

SET NOCOUNT ON

IF EXISTS(
SELECT
*
FROM
ACCESOS
WHERE
ACCESOS.PERFILID = (SELECT CONVERT(INT ,RTRIM(USUARIOS.PERFILID)) FROM
USUARIOS WHERE ESTADO = 1 AND USUARIOS.USUARIO = ***USUARIO)
AND ACCESOS.APLICACIONID = (SELECT APLICACIONES.APLICACIONID FROM
APLICACIONES WHERE ESTADO = 1 AND APLICACIONES.RUTA = ***FORM)
AND ACCESOS.ESTADO = 1
)
SET ***RES = 1
ELSE
SET ***RES = 0
GO

Desde donde estas ejecutando este sp para probar el resultado?


AMB



"arturohm" wrote:

> Buenos dias,
>
> tengo el siguiente SP, cuando pruebo bloque x bloque funciona
> correctamente, pero cuando ejecuto o pruebo todo el SP, no obtengo
> nada como resultado, los parametos que ingresan son de la forma:
> "usuario1" y "Carpeta\archivo.ext" y como resultado de salida debo
> obtener 1 o 0, pero no obtengo nada, cualquier ayuda lo agradeceria
> mucho:
>
>
> ALTER PROCEDURE [dbo].[USP_PERFIL_VERIFICAR]
> (
> ***USUARIO VARCHAR(24),
> ***FORM VARCHAR(256),
> ***RES INT OUTPUT
> )
> AS
> BEGIN
>
> DECLARE ***VARPERFIL INT,***VARAPLICACION INT;
> --1er bloque
> SET ***VARPERFIL = (SELECT CONVERT(INT ,RTRIM(USUARIOS.PERFILID))
> FROM USUARIOS
> WHERE ESTADO = 1 AND RTRIM(USUARIOS.USUARIO) = ***USUARIO)
> --2do bloque
> SET ***VARAPLICACION = (SELECT APLICACIONES.APLICACIONID
> FROM APLICACIONES
> WHERE ESTADO = 1 AND RTRIM(APLICACIONES.RUTA) = ***FORM)
> --3er bloque
> IF EXISTS(
> SELECT ACCESOS.PERFILID,ACCESOS.APLICACIONID
> FROM ACCESOS
> WHERE ACCESOS.PERFILID = ***VARPERFIL AND ACCESOS.APLICACIONID =
> ***VARAPLICACION AND
> ACCESOS.ESTADO = 1
> )
> BEGIN
> SET ***RES = 1
> END
> ELSE
> BEGIN
> SET ***RES = 0
> END
>
> END
> GO
>

Responder Con Cita
  #3 (permalink)  
Antiguo 07-01-2009, 14:19:03
arturohm
 
Mensajes: n/a
Predeterminado Re: if exists syntax - consulta

Estoy haciendo las pruebas desde el SQL Server Management Studio, los
parametros a suministrar son de la forma: ***usuario = aherrera y
***form = ModuloAdministracion/Administracion.aspx

al ingresar estos datos, debe tener como resultado para el 1er bloque
el valor de 2, para el 2do bloque 4, y en el 3er bloque con estos
valores 2 y 4, debo tener 1 como resultado final. como comente antes
al probar bloque x bloque funciona, pero cuando pruebo todo el SP al
imprimir la variable ***res, no obtengo nada.
Gracias por la ayuda.


Responder Con Cita
  #4 (permalink)  
Antiguo 07-01-2009, 16:03:01
Jhonny Vargas P.
 
Mensajes: n/a
Predeterminado Re: if exists syntax - consulta

Hola,

Cuando ejecutes el SP debes especificar que el parametro RES es output,
ejemplo:

DECLARE ***RES INT
EXEC USP_PERFIL_VERIFICAR '', '', ***RES OUTPUT

SELECT ***RES



por otro lado... podrías dejar todo en un solo bloque en el SP... mira el
ejemplo:

ALTER PROCEDURE [dbo].[USP_PERFIL_VERIFICAR]
(
***USUARIO VARCHAR(24),
***FORM VARCHAR(256),
***RES INT OUTPUT
)
AS
BEGIN

SET NOCOUNT ON

IF EXISTS(SELECT TOP 1 ACCESOS.PERFILID
FROM ACCESOS AC
INNER JOIN USUARIOS US ON (AC.PERFILID = US.PERFILID)
INNER JOIN APLICACIONES AP ON (AC.APLICACIONID =
AP.APLICACIONID)
WHERE RTRIM(US.USUARIO) = ***USUARIO AND
RTRIM(AP.RUTA) = ***FORM AND
US.ESTADO = 1 AND
AP.ESTADO = 1 AND
UC.ESTADO = 1 )
SET ***RES = 1
ELSE
SET ***RES = 0

END



--
Saludos,
Jhonny Vargas P.
Santiago de Chile


"arturohm" <arturohm***gmail.com> escribió en el mensaje de
noticias:3464dd9c-37ac-4cb1-a573-18b689e329b2***x16g2000prn.googlegroups.com...
> Buenos dias,
>
> tengo el siguiente SP, cuando pruebo bloque x bloque funciona
> correctamente, pero cuando ejecuto o pruebo todo el SP, no obtengo
> nada como resultado, los parametos que ingresan son de la forma:
> "usuario1" y "Carpeta\archivo.ext" y como resultado de salida debo
> obtener 1 o 0, pero no obtengo nada, cualquier ayuda lo agradeceria
> mucho:
>
>
> ALTER PROCEDURE [dbo].[USP_PERFIL_VERIFICAR]
> (
> ***USUARIO VARCHAR(24),
> ***FORM VARCHAR(256),
> ***RES INT OUTPUT
> )
> AS
> BEGIN
>
> DECLARE ***VARPERFIL INT,***VARAPLICACION INT;
> --1er bloque
> SET ***VARPERFIL = (SELECT CONVERT(INT ,RTRIM(USUARIOS.PERFILID))
> FROM USUARIOS
> WHERE ESTADO = 1 AND RTRIM(USUARIOS.USUARIO) = ***USUARIO)
> --2do bloque
> SET ***VARAPLICACION = (SELECT APLICACIONES.APLICACIONID
> FROM APLICACIONES
> WHERE ESTADO = 1 AND RTRIM(APLICACIONES.RUTA) = ***FORM)
> --3er bloque
> IF EXISTS(
> SELECT ACCESOS.PERFILID,ACCESOS.APLICACIONID
> FROM ACCESOS
> WHERE ACCESOS.PERFILID = ***VARPERFIL AND ACCESOS.APLICACIONID =
> ***VARAPLICACION AND
> ACCESOS.ESTADO = 1
> )
> BEGIN
> SET ***RES = 1
> END
> ELSE
> BEGIN
> SET ***RES = 0
> END
>
> END
> GO


Responder Con Cita
  #5 (permalink)  
Antiguo 07-01-2009, 17:38:57
arturohm
 
Mensajes: n/a
Predeterminado Re: if exists syntax - consulta

Gracias por la ayuda, ahora funciona correctamente el SP.

Responder Con Cita
 
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado


Temas Similares
Tema Autor Foro Respuestas Último mensaje
Comparar >= en Enterprise Search SQL Syntax Kr1x Newsgroup microsoft.public.es.sharepoint 0 25-02-2009 16:35:43
List<T>.Exists Robert Barreiro Newsgroup microsoft.public.es.csharp 2 06-03-2008 20:33:41
NOT EXISTS Penta Newsgroup microsoft.public.es.sqlserver 4 19-02-2008 13:30:31
File exists Xavi_Q Newsgroup microsoft.public.es.vb 2 10-02-2008 18:16:42
Optimizacion en IF.....EXISTS Juan Carlos Mendoza Newsgroup microsoft.public.es.sqlserver 4 13-11-2007 21:15:00



La franja horaria es GMT. Ahora son las 14:43:47.



Powered by: vBulletin, Versión 3.6.8
Derechos de Autor ©2000 - 2010, Jelsoft Enterprises Ltd.

LinkBacks Enabled by vBSEO 3.1.0 © 2007, Crawlability, Inc.