ho un problema con una stored procedur
codice:
codice:
USE [TELECONTROLLO]
GO
/****** Oggetto: StoredProcedure [dbo].[SP_Insert_Modifica_Report] Data script: 05/12/2014 09:50:10 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SP_Insert_Modifica_Report]
-- Add the parameters for the stored procedure here
@DataFine datetime,
@DataInizio datetime,
@Tabella varchar(10),
@Misura varchar(50),
@User varchar(20)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
declare @ComandoSQL varchar(8000)
declare @DataInizio_While datetime
-- Aggiungo Un giorno a Data Fine perchè devev essere compresa nella Select
set @DataFine = dateadd(day,1,@DataFine)
if @Tabella in ('FIFTEEN','HOURLY')
exec sp_get_query_YYYYMM @DataFine, @DataInizio, @Tabella, @Misura , @ComandoSQL out
else if @Tabella in ('DAILY','DAILYT')
exec sp_get_query_YYYY @DataFine, @DataInizio, @Tabella, @Misura , @ComandoSQL out
else
exec sp_get_query @DataFine, @DataInizio, @Tabella, @Misura , @ComandoSQL out
SET @ComandoSQL = 'INSERT INTO [RPT_MODIFICA_MISURE] ([TAGNAME],[LOGTIME],[TAGVALUE],[TAGV_MIN],[TAGV_MAX],[TAGV_INT],[TAGV_INI],[TAGV_END],[DATA_MIN],[DATA_MAX],[TABELLA],[RPT_USER]) Select *, '''+ @Tabella + ''', ''' + @User +''' from ('+@ComandoSQL+') As MyTable ORDER BY LOGTIME ASC'
Print 'Eseguo Comando SQL ritornato --> ' + @ComandoSQL
exec (@ComandoSQL)
if @@ERROR <> 0
--return 0
--else
begin
Print @@ERROR
return -1
end
-- inserisco un record vuoto per ogni periodo non trovato
print 'verifica'
set @DataInizio_While = @DataInizio
while @DataInizio_While < @DataFine
begin
print @DataInizio_While
if not exists(SELECT 1 FROM RPT_MODIFICA_MISURE
WHERE LOGTIME = @DataInizio_While
AND RPT_USER = @User
AND TABELLA = @Tabella )
begin
print 'record periodo ' + Cast(@DataInizio_While as varchar(20)) + ' non trovato'
print 'lo inserisco'
INSERT INTO RPT_MODIFICA_MISURE
(TAGNAME,LOGTIME,TABELLA,RPT_USER)
VALUES
(@Misura,@DataInizio_While,@Tabella,@User)
end
if @Tabella = 'FIFTEEN'
set @DataInizio_While = dateadd(n,15,@DataInizio_While)
if @Tabella = 'HOURLY'
set @DataInizio_While = dateadd(hh,1,@DataInizio_While)
if @Tabella = 'DAILY'
set @DataInizio_While = dateadd(d,1,@DataInizio_While)
if @Tabella = 'MONTHLY'
set @DataInizio_While = dateadd(m,1,@DataInizio_While)
if @Tabella = 'YEARLY'
set @DataInizio_While = dateadd(y,1,@DataInizio_While)
end
if @@ERROR = 0
return 0
else
begin
Print @@ERROR
return -1
end
END
e ho creato un metodo in VB6 che la richiama:
codice:
Public Sub sbExecSPModifiche(sTag As String, dDataInizio As Date, dDataFine As Date, sTabella As String, sUser As String)
' @DataFine datetime,
' @DataInizio datetime,
' @Tabella varchar(10),
' @Misura varchar(50)
Dim lTb As ADODB.Recordset
Dim strFiltro As String
Dim stato As Stream
Dim stat As String
Dim provRis As String
Dim strProva As String
strProva = "select RPT_Password from RPT_UTENTI WHERE RPT_Codice_Utente='Piana'"
Call sbApriRecordset(lTb, strProva)
provRis = lTb!RPT_Password
'strFiltro = "@DataFine = '" & dDataFine & "',"
'strFiltro = strFiltro & "@DataInizio = '" & dDataInizio & "',"
'strFiltro = "SP_Insert_Modifica_Report ,"
stat = lTb.State
stat = gDB.State
strFiltro = strFiltro & "@DataFine = '" & Format(dDataFine, "yyyy/mm/dd hh:mm:ss") & "',"
strFiltro = strFiltro & "@DataInizio = '" & Format(dDataInizio, "yyyy/mm/dd hh:mm:ss") & "',"
strFiltro = strFiltro & "@Tabella = '" & sTabella & "',"
strFiltro = strFiltro & "@Misura = '" & sTag & "',"
strFiltro = strFiltro & "@User = '" & sUser & "'"
Set lTb = gDB.Execute("EXEC SP_Insert_Modifica_Report ", strFiltro)
End Sub
ma appena provo ad eseguirla mi da il seguente errore:
Errore N.-2147217904 - La procedura o funzione 'SP_Insert_Modifica_Report' prevede il parametro '@DataFine', che non è stato specificato.
ma come potete notare il parametro è ben definito.
sto sbattendo su questo errore da un paio di giorni, please help me!!Thanks