
12/02/2010, 13:00
|
| | Fecha de Ingreso: agosto-2007
Mensajes: 268
Antigüedad: 17 años, 6 meses Puntos: 2 | |
Respuesta: Varios registros en un store procedure Hola a todos:
Como creo que debe ser todo esto me dispongo a mostrarles las 2 solucines que encontre al problema que de inicio expuse. Forzar al cliente a darme siempre los datos que requiere el Query. De tal modo que mi Store Procedure quedo de la siguiente manera:
ALTER PROCEDURE [dbo].[Usuariosxoperacionxfecha]
--Las variable de entrada
@UsuarioInicial nvarchar(13) = '',
@UsuarioFinal nvarchar(13) = '',
@OperacionInicial nvarchar(20) = '',
@OperacionFinal nvarchar(20) = '',
@dfechainicial datetime = '01-01-2000',
@dfechaFinal datetime = '01-01-3000'
AS
BEGIN
SELECT usuario, fechaacceso, operacion, tiempoacceso
FROM usuarios
WHERE usuario >= @UsuarioInicial AND usuario <= @UsuarioFinal
AND (operacion = @OperacionInicial OR operacion = @OperacionFinal)
AND fechaacceso >= @dfechainicial AND fechaacceso <= @dfechaFinal
END
Esta opcion me la otorgo Flaviovich. En este procedimiento lo que realizo es enviar la informacion especifica de los filtros, esta misma se guarda en las variables @usuarioinicial, @usuariofinal,@operacioninicial,@operacionfinal,@d fechainicial y @fechafinal
Y la forma de ejecutarlo es:
Exec [dbo].[Usuariosxoperacionxfecha]
'USUARIO1','USUARIO30','ALTA','REVISION','20100101 ','20100228'
Por otro lado tambien probe con un query dinamico y el store procedure lo hice la siguiente manera
ALTER PROCEDURE [dbo].[Usuariosxoperacionxfecha]
--Las variable de entrada
@WHERE nvarchar(2000) = ''
AS
BEGIN
DECLARE @QUERY nvarchar(2000) = '';
SET @QUERY = ('SELECT usuario, fechaacceso, operacion, tiempoacceso
FROM usuarios' + @WHERE
EXEC (@QUERY)
END
En este procedimiento lo que hago es enviar todas las condicionantes dentro de la variable @WHERE y ejecuto el mismo antes de finalizar el procedimieto.
La forma de ejecutarlo es:
Exec [dbo].[Usuariosxoperacionxfecha]
' WHERE usuario >= ''USUARIO1'' AND usuario <= ''USUARIO2'' '
Debo hacer notar que las comillas que parecen dobles, son 2 comillas simples
Espero sirva de referencia.
Saludos... |