ecco le due stored che vorrei unificare in una sola:
prima
ALTER PROCEDURE [dbo].[GetRecordAlb]
(
@CodAlbergo Int,
@DallaData SmallDateTime,
@AllaData SmallDateTime
)
AS
BEGIN
SET NOCOUNT ON;
SELECT
MOV.Codalbergo,
MOV.prog_schedina,
MOV.annogestionale,
MOV.data_elaborazione,
MOV.stato,
MOV.ncomp,
MOV.stato_res,
MOV.Codstato,
MOV.prov,
CodiceComune=Alb.codcomune,
Descrizione=Alb.descrizione,
CodiceRegione=Alb.codreg,
CodiceProvincia=Alb.codprov
FROM
dbo.Archivio_mov MOV
JOIN
dbo.Albergo Alb
ON Alb.codalb= MOV.Codalbergo
WHERE
MOV.Codalbergo=@CodAlbergo AND MOV.Data_elaborazione BetWeen @DallaData AND @AllaData
END
seconda
ALTER PROCEDURE [dbo].[GetRecordAlb3]
(
@CodAlbergo Int,
@DallaData SmallDateTime,
@AllaData SmallDateTime
)
AS
BEGIN
SELECT COUNT(Mov.codalbergo) As nrec,ALB.codalb,ALB.descrizione
FROM dbo.archivio_mov MOV JOIN dbo.Albergo ALB
ON MOV.codalbergo= ALB.codalb
WHERE
Codalbergo=@CodAlbergo AND data_elaborazione between @dalladata and @alladata
Group By MOV.codalbergo,ALB.codalb,ALB.descrizione
END
io ho pensato di fare così:
ALTER PROCEDURE [dbo].[GetRecordAlb]
(
@CodAlbergo Int,
@DallaData SmallDateTime,
@AllaData SmallDateTime
)
AS
BEGIN
SET NOCOUNT ON;
SELECT
MOV.Codalbergo,
MOV.prog_schedina,
MOV.annogestionale,
MOV.data_elaborazione,
MOV.stato,
MOV.ncomp,
MOV.stato_res,
MOV.Codstato,
MOV.prov,
CodiceComune=Alb.codcomune,
Descrizione=Alb.descrizione,
CodiceRegione=Alb.codreg,
CodiceProvincia=Alb.codprov
FROM
dbo.Archivio_mov MOV
JOIN
dbo.Albergo Alb
ON Alb.codalb= MOV.Codalbergo
WHERE
MOV.Codalbergo=@CodAlbergo AND MOV.Data_elaborazione BetWeen @DallaData AND @AllaData;
SELECT COUNT(Mov.codalbergo) As nrec,ALB.codalb,ALB.descrizione
FROM dbo.archivio_mov MOV JOIN dbo.Albergo ALB
ON MOV.codalbergo= ALB.codalb
WHERE
Codalbergo=@CodAlbergo AND data_elaborazione between @dalladata and @alladata
Group By MOV.codalbergo,ALB.codalb,ALB.descrizione
END
giusto? e poi il datareader.NextResult
lo devo fare dopo la while...wend?
perchè ecco il codice che utilizzo per prelevare i record dalla prima stored
Public Function CaricaRecAllAlb(ByVal ObjC59 As PropertyC59) As C59Collection
Dim C59Coll As New C59Collection
SqlCmd.CommandText = "GetRecordAlb"
SqlCmd.Parameters.Add("@CodAlbergo", SqlDbType.Int).Value = ObjC59.CodAlbergo
SqlCmd.Parameters.Add("@DallaData", SqlDbType.DateTime).Value = ObjC59.DallaData
SqlCmd.Parameters.Add("@AllaData", SqlDbType.DateTime).Value = ObjC59.AllaData
Try
SqlCmd.Connection = Db
SqlCmd.CommandType = CommandType.StoredProcedure
SqlDr = SqlCmd.ExecuteReader
While SqlDr.Read
ObjC59 = New PropertyC59
ObjC59.CodAlbergo = SqlDr.GetSqlInt32(0).Value
ObjC59.NumeroSchedina = SqlDr.GetSqlInt32(1).Value
ObjC59.Annogestionale = SqlDr.GetSqlInt32(2).Value
ObjC59.DataElaborazione = SqlDr.GetSqlDateTime(3).Value
ObjC59.Tipostato = SqlDr.GetSqlString(4).Value
ObjC59.NumeroComponenti = SqlDr.GetSqlInt32(5).Value
ObjC59.StatoResidenza = SqlDr.GetSqlString(6).Value
ObjC59.CodStato_Res = SqlDr.GetSqlString(7).Value
ObjC59.ComuneResidenza = SqlDr.GetSqlString(8).Value
ObjC59.CodComune = SqlDr.GetSqlInt32(9).Value
ObjC59.NomeAlbergo = SqlDr.GetSqlString(10).Value
ObjC59.CodiceRegione = SqlDr.GetSqlInt32(11).Value
ObjC59.CodiceProvincia = SqlDr.GetSqlInt32(12).Value
C59Coll.Add(ObjC59)
End While
Catch ex As Exception
Throw ex
Finally
SqlDr.Close()
SqlCmd.Parameters.Clear()
SqlCmd.Dispose()
End Try
Return C59Coll
End Function
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com