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

Procedimiento almacenado

Estas en el tema de Procedimiento almacenado en el foro de SQL Server en Foros del Web. Buenas tardes, tengo un procedimiento almacenado declarado de la siguiente manera: CREATE PROCEDURE miProcedimiento @idPersonal int, @nombre nvarchar(100) AS select DL.diaSemana,DL.horainicio,DL.horafin, CL.* from tblCliente as ...
  #1 (permalink)  
Antiguo 23/03/2009, 13:24
Avatar de Expinete  
Fecha de Ingreso: abril-2006
Ubicación: Zaragoza
Mensajes: 236
Antigüedad: 18 años, 6 meses
Puntos: 3
Procedimiento almacenado

Buenas tardes, tengo un procedimiento almacenado declarado de la siguiente manera:

CREATE PROCEDURE miProcedimiento
@idPersonal int,
@nombre nvarchar(100)
AS
select DL.diaSemana,DL.horainicio,DL.horafin, CL.* from tblCliente as CL
join tbldiaslimpieza as DL on CL.IdCliente=DL.IdCliente
left join tblPersonalDiasLimpieza as PDL on DL.IddiasLimpieza=PDL.iddiaslimpieza
where Empresa LIKE @nombre +'%' and @idPersonal is null or IdPersonal<>@idPersonal
GO


si lo llamo desde el analizador de consultas dandole los valores @nombre='c',@IdPersonal=30, me da unos resultados que no se corresponden con los que había probado ahi haciendo esto:

declare @nombre nvarchar(50)
declare @IdPersonal int

set @nombre='c'
set @IdPersonal=30

select DL.diaSemana,DL.horainicio,DL.horafin, CL.* from tblCliente as CL
join tbldiaslimpieza as DL on CL.IdCliente=DL.IdCliente
left join tblPersonalDiasLimpieza as PDL on DL.IddiasLimpieza=PDL.iddiaslimpieza
where Empresa LIKE @nombre +'%' and IdPersonal is null or IdPersonal<>@IdPersonal


¿alguien sabe que está pasando?

Gracias.
Un saludo.
  #2 (permalink)  
Antiguo 23/03/2009, 22:14
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 2 meses
Puntos: 39
Respuesta: Procedimiento almacenado

Código sql:
Ver original
  1. CREATE PROCEDURE miProcedimiento
  2. @idPersonal INT,
  3. @nombre nvarchar(100)
  4. AS
  5. EXEC('
  6. select DL.diaSemana,DL.horainicio,DL.horafin, CL.*
  7. from tblCliente as CL
  8. inner join tbldiaslimpieza as DL on CL.IdCliente=DL.IdCliente
  9. left join tblPersonalDiasLimpieza as PDL on DL.IddiasLimpieza=PDL.iddiaslimpieza
  10. where Empresa LIKE '''+@nombre +'''% and ('+CAST(@idPersonal AS VARCHAR)+' is null or IdPersonal<>'+CAST(@idPersonal AS VARCHAR))
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 24/03/2009, 02:26
Avatar de Expinete  
Fecha de Ingreso: abril-2006
Ubicación: Zaragoza
Mensajes: 236
Antigüedad: 18 años, 6 meses
Puntos: 3
Respuesta: Procedimiento almacenado

Gracias por tu respuesta flaviovich pero me dan error los cast, ¿puede que sea porque es sql server 2003?

Sigo dándole vueltas y no sé que puede ser, probaré con convert o algo así.

Un saludo
  #4 (permalink)  
Antiguo 24/03/2009, 02:30
Avatar de Expinete  
Fecha de Ingreso: abril-2006
Ubicación: Zaragoza
Mensajes: 236
Antigüedad: 18 años, 6 meses
Puntos: 3
Respuesta: Procedimiento almacenado

Ya está solucionado.
gracias flaviovich, tenía que hacer el cast de @nombre y me sobraba el cast de @idPersonal.
Un saludo.
  #5 (permalink)  
Antiguo 24/03/2009, 20:25
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 3 meses
Puntos: 180
Respuesta: Procedimiento almacenado

Como simple observacion, no existe la version 2003 de SQL Server.
  #6 (permalink)  
Antiguo 25/03/2009, 02:33
Avatar de Expinete  
Fecha de Ingreso: abril-2006
Ubicación: Zaragoza
Mensajes: 236
Antigüedad: 18 años, 6 meses
Puntos: 3
Respuesta: Procedimiento almacenado

Perdón windows 2000 y sql server 2000...
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 18:00.