Problema en Store Procedure

06/12/2004 - 20:25 por DiegoC | Informe spam
Hola, tengo este Store Procedure para que me devuelva los dias del mes en
los cuales hay rangos de horarios determinados, el problema esta en que
cuendo corro desde VB esto:

cadena = "sp_Horarios '" & '20041201' & "'," & 1 & ",'" & 1 & "'"
rs.Open cadena, ADOcnDatos, adOpenForwardOnly, adLockReadOnly

se ejecura pero rs me queda vacio, no tengo nada.
No entiendo porque, ya que con otros SP, mas sensillos, que hacen un Select
con parametros y coas por el estilo, en rs si me devuelve el recorset con
los datos.
Se que este NO es un foro de programacion, pero el error mio creo que esta
en el SP.

Desde ya muchas gracias y aqui abajo pongo el SP:

CREATE PROCEDURE sp_Horarios
@FechaAAMM datetime,
@IdMedico int,
@IdSede varchar(2)
AS

Declare @i int
Declare @HD varchar(5)
Declare @HH varchar(5)
Declare @Fecha datetime
Declare @DiaS int

create table #tmes (dia int, hh varchar(5), hd varchar(5))
Select @i = 0
While (@i < 30)
Begin
Select @Fecha = Dateadd(dd,@i,@FechaAAMM)
Select @DiaS = DatePart(dw,@Fecha)
Select @HH = ''
Select @HD = ''
SELECT @HH = HoraHasta,@HD = HoraDesde From TurnosDef
Where VigDesde <= @FechaAAMM And VigHasta >= @FechaAAMM
And (Select Max(VigDesde) From TurnosDef Where VigDesde < @FechaAAMM And IdMedico = @IdMedico And
VigHasta >= @FechaAAMM)

= VigDesde And IdMedico = @IdMedico And IdSede = @IdSede And


Dia = @DiaS
ORDER BY VigDesde DESC, Dia, HoraDesde
Select @i = @i + 1
INSERT INTO #tmes Values(@i,@HD,@HH)
End
Select * From #tmes
GO

Preguntas similare

Leer las respuestas

#1 ulises
06/12/2004 - 20:55 | Informe spam
Utiliza SET NOCOUNT ON al inicio del procedimiento.

Saludos,
Ulises

Mostrar la cita
dias del mes en
Mostrar la cita
problema esta en que
Mostrar la cita
",'" & 1 & "'"
Mostrar la cita
adLockReadOnly
Mostrar la cita
que hacen un Select
Mostrar la cita
el recorset con
Mostrar la cita
mio creo que esta
Mostrar la cita
#2 DiegoC
06/12/2004 - 21:00 | Informe spam
FUNCIONA !!!

Muchisimas Gracias.

Ahi estaba mi problema.

Saludos, Diego



"ulises" escribió en el mensaje
news:185e01c4dbcd$81577e70$
Mostrar la cita
#3 Javier Loria
06/12/2004 - 22:14 | Informe spam
Hola:
De paso podrias pensar en eliminar la tabla temporal para que el codigo
funcione mejor.
Asumiendo que tienen una tabla de numeros creada del tipo:
== CREATE TABLE Numeros(
Numero INT PRIMARY KEY NOT NULL
)
= Y que esta tabla esta llena e numeros (por los menos 31)
Entonces la consulta podria ser escrita como:
=CREATE PROC
AS
SET NOCOUNT ON
SELECT Numeros.Numero
, HoraHasta AS HH
, HoraDesde as HD
FROM TurnosDef
CROSS JOIN Numeros
WHERE VigDesde <= @FechaAAMM
AND VigHasta >= @FechaAAMM
AND (Select Max(VigDesde)
From TurnosDef
Where VigDesde <= @FechaAAMM
AND IdMedico = @IdMedico
AND VigHasta >= @FechaAAMM)>= VigDesde
AND IdMedico = @IdMedico
AND IdSede = @IdSede
AND Dia = DatePart(dw,Dateadd(dd,Numeros.Numero,@FechaAAMM))
AND Numeros.Numero<30
ORDER BY VigDesde DESC, Dia, HoraDesde
= Tal vez podrias probarlo?
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"DiegoC" wrote in message
news:
Mostrar la cita
Select
Mostrar la cita
#4 DiegoC
07/12/2004 - 13:47 | Informe spam
Ok.

Muchas gracias.

Saludos, Diego

"Javier Loria" escribió en el mensaje
news:
Mostrar la cita
codigo
Mostrar la cita
en
Mostrar la cita
"'"
Mostrar la cita
con
Mostrar la cita
esta
Mostrar la cita
Ads by Google
Search Busqueda sugerida