SQL Server - datos stored procedure en grid

   
Vista:

datos stored procedure en grid

Publicado por bsin (19 intervenciones) el 17/04/2011 04:31:25
Este es un tema de vb6 pero como es de una bd de sql server y no recibo respuestas en el foro de vb6, talvez Ustedes me pueden ayudar. Necesito mostrar los datos entre dos fechas en un datagrid desde una tabla en Sql Server 2005 mediante un Stored Procedure que se llama "customtrb". Aqui les envío el código a ver en que estoy fallando. Me produce un error "El conjunto de filas no admite marcadores". Muchas gracias.

Dim rst As ADODB.Recordset
Dim cmd As ADODB.Command
Set rst = New ADODB.Recordset
Set cmd = New ADODB.Command
Call databaseconnecta12

cmd.ActiveConnection = cxRegData12
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "Customtrb"

Dim dt3 As String
dt3 = (Text6.Text)
Dim dt4 As String
dt4 = (Text7.Text)
cmd.Parameters.Append cmd.CreateParameter("@Startdate", adVarChar, adParamInput, 8, dt3)
cmd.Parameters.Append cmd.CreateParameter("@Enddate", adVarChar, adParamInput, 8, dt4)

Set rst = cmd.Execute
Set DataGrid1.DataSource = rst
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

datos stored procedure en grid

Publicado por Isaias (3186 intervenciones) el 18/04/2011 17:50:45
Nos muestras el codigo de tu STORE PROCEDURE?

Ya lo ejecutaste desde tu management studio?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Santos Pairazamán

datos stored procedure en grid

Publicado por Santos Pairazamán (2 intervenciones) el 20/04/2011 17:43:39
xq en lugar de 8 (20/04/11) le pones 10 (20/04/2011)

cmd.Parameters.Append cmd.CreateParameter("@Startdate", adVarChar, adParamInput, 10, dt3)


y al comparar en tu store le haces un convert a tu campo

... where TuCampoFecha BETWEEN Convert(datetime,@Startdate,103) AND Convert(datetime,@Enddate,103)

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

datos stored procedure en grid

Publicado por Isaias (3186 intervenciones) el 20/04/2011 23:53:51
Santos

Los campos o valores de tipo DATETIME, nunca se comparan con BETWEEN, es preferible utilizar >= y <=
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

datos stored procedure en grid

Publicado por bsin (19 intervenciones) el 21/04/2011 05:00:08
Gracias por las respuestas recibidas. El stored procedure esta bien estructurado y probado. Mi problema radica en mostrar los resultados en el flex grid. Muchas gracias. Es en esta parte del código.
Set rst = cmd.Execute
Set DataGrid1.DataSource = rst
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

datos stored procedure en grid

Publicado por bsin (19 intervenciones) el 21/04/2011 05:23:56
Bueno otra cosa que necesito consultar con Isaias, aqui está el stored procedure, lo que pasa es que necesito incluir una columna que me refleje el total de reservaciones por día "es el total del campo PIVOT max(resv)", pero al ejecutar el stored procedure me produce un error, si me puede ayudar en revisarlo. Si lo ejecuto sin el count(torday) me funciona, pero con eso no. Muchas Gracias.
CREATE PROCEDURE [dbo].[Customtr]
-- Add the parameters for the stored procedure here
@StartDate Varchar(8),
@EndDate Varchar(8),
@tot int output

AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for procedure here
SELECT
totday,datein,[12], [3], [18], [11], [16], [15]

FROM(select count(totday) as tot,resv,room,datein from Table1 where (datein >= @StartDate and datein<= @EndDate)) AS T1
PIVOT (max(resv) FOR room IN ([12], [3], [18], [11], [16], [15])) as test
group by datein
END
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar