Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    24

    Avvio Stored Procedure su SQL 2000

    Salve a tutti,

    ho creato una SP Parametrizzata in Input (2 Parametri DATETIME) sul mio DBMS SQL 2000, e ho la necessità di Avviare tale SP da ASP, qualcuno può darmi una mano?

    Io in VB6 avviavo il comando:

    Set Dbs = New....
    Set Rs = New....

    Dbs.open ....

    Rs.open "EXECUTE SP_NOME '" & Da_Data & "', '" & A_Data & "'"

    ...
    ...
    "Gestisco le righe i risultati"
    ..
    ..

    ma in ASP mi da degli errori.

    Ho provato con COmmand:

    set command = Server.CreateObject("ADODB.Command")

    DBS.Open ....

    command.ActiveConnection = DBS
    command.CommandText = "SP_NOME"
    command.CommandType = adCmdStoredProcedure

    >parametri di input

    set objParameter = command.CreateParameter ("@Da_Data", addatetime, adParamInput, 30, Da_data)
    command.Parameters.Append objParameter
    ---> (Non credo sia giusto il parametro Data sopra citato, ma tanto nn arriva a leggere questa riga...)

    ma mi da errore sulla riga del COmmandType:

    Gli argomenti non sono di tipo valido, non sono compresi nell'intervallo consentito o sono in conflitto.

    Avete suggerimenti?

    Grazie 1000000!!!

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ad esempio:
    codice:
    'Prima apri la connessione, poi...
    
    set objCmd = Server.CreateObject("ADODB.Command")
    set objCmd.ActiveConnection = objConn
    
    'Chiamo la stored procedure
    objCmd.CommandText = "sp_Q_NuovoQuest"
    objCmd.CommandType = adCmdStoredProc
    
    'Parametri di input
    'Formato: nomecampo, tipo, tipo di parametro, lunghezza, valore
    set objParameter = objCmd.CreateParameter ("@quest_id", adVarChar, adParamInput, 10, quest_id)
    objCmd.Parameters.Append objParameter
    
    set objParameter = objCmd.CreateParameter ("@quest_titolo", adVarChar, adParamInput, 250, quest_titolo)
    objCmd.Parameters.Append objParameter
    
    objCmd.Execute, , adExecuteNoRecords
    
    cmdDisconnect
    Non so se il tuo problema sia legato poi al tupo di dato (campo data).

    Roby

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    24
    Originariamente inviato da Roby_72
    Ad esempio:
    codice:
    'Prima apri la connessione, poi...
    
    set objCmd = Server.CreateObject("ADODB.Command")
    set objCmd.ActiveConnection = objConn
    
    'Chiamo la stored procedure
    objCmd.CommandText = "sp_Q_NuovoQuest"
    objCmd.CommandType = adCmdStoredProc
    
    'Parametri di input
    'Formato: nomecampo, tipo, tipo di parametro, lunghezza, valore
    set objParameter = objCmd.CreateParameter ("@quest_id", adVarChar, adParamInput, 10, quest_id)
    objCmd.Parameters.Append objParameter
    
    set objParameter = objCmd.CreateParameter ("@quest_titolo", adVarChar, adParamInput, 250, quest_titolo)
    objCmd.Parameters.Append objParameter
    
    objCmd.Execute, , adExecuteNoRecords
    
    cmdDisconnect
    Non so se il tuo problema sia legato poi al tupo di dato (campo data).

    Roby
    Ciao Roby,

    Grazie della risp.

    può darsi.. ma ho provato ad infilargli la data in ogni maniera e formato... nn c'è nulla da fare!!!

    Poi guarda questo codice:

    codice:
    Const adCmdStoredProc    = 4
    Const adInteger          = 3
    Const adCurrency         = 6
    Const adParamInput       = 1
    Const adParamOutput      = 2
    Const adExecuteNoRecords = 128
    
    Dim cnnStoredProc ' Connection object
    Dim cmdStoredProc ' Command object
    Dim rstStoredProc ' Recordset object (for part 2)
    Dim paramId       ' Parameter object
    
    Set cnnStoredProc = Server.CreateObject("ADODB.Connection")
    cnnStoredProc.Open Application("SQLControlli")
    	
    Set cmdStoredProc = Server.CreateObject("ADODB.Command")
    
    cmdStoredProc.ActiveConnection = cnnStoredProc
    
    cmdStoredProc.CommandText = "Statistiche_FRN"
    cmdStoredProc.CommandType = adCmdStoredProc
    
    Set paramId = cmdStoredProc.CreateParameter("@Da_Data", 133, 1)
    paramId.Value = "08/01/2011"
    cmdStoredProc.Parameters.Append paramId
    
    Set paramId = cmdStoredProc.CreateParameter("@A_Data", 133, 1)
    paramId.Value = "08/31/2011"
    cmdStoredProc.Parameters.Append paramId
    
    Set rstStoredProc = cmdStoredProc.Execute
    
    Response.Write Trim(rstStoredProc.recordcount)
    Mi da errore di Record set Chiuso al momento di visualizzare il dato...:

    ADODB.Recordset error '800a0e78'

    L'operazione non è consentita se l'oggetto è chiuso.

    ....



    Ke noia.. cosa può essere?

    Grazie ancora

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    24
    Originariamente inviato da cmaxym
    Ciao Roby,

    Grazie della risp.

    può darsi.. ma ho provato ad infilargli la data in ogni maniera e formato... nn c'è nulla da fare!!!

    Poi guarda questo codice:

    codice:
    Const adCmdStoredProc    = 4
    Const adInteger          = 3
    Const adCurrency         = 6
    Const adParamInput       = 1
    Const adParamOutput      = 2
    Const adExecuteNoRecords = 128
    
    Dim cnnStoredProc ' Connection object
    Dim cmdStoredProc ' Command object
    Dim rstStoredProc ' Recordset object (for part 2)
    Dim paramId       ' Parameter object
    
    Set cnnStoredProc = Server.CreateObject("ADODB.Connection")
    cnnStoredProc.Open Application("SQLControlli")
    	
    Set cmdStoredProc = Server.CreateObject("ADODB.Command")
    
    cmdStoredProc.ActiveConnection = cnnStoredProc
    
    cmdStoredProc.CommandText = "Statistiche_FRN"
    cmdStoredProc.CommandType = adCmdStoredProc
    
    Set paramId = cmdStoredProc.CreateParameter("@Da_Data", 133, 1)
    paramId.Value = "08/01/2011"
    cmdStoredProc.Parameters.Append paramId
    
    Set paramId = cmdStoredProc.CreateParameter("@A_Data", 133, 1)
    paramId.Value = "08/31/2011"
    cmdStoredProc.Parameters.Append paramId
    
    Set rstStoredProc = cmdStoredProc.Execute
    
    Response.Write Trim(rstStoredProc.recordcount)
    Mi da errore di Record set Chiuso al momento di visualizzare il dato...:

    ADODB.Recordset error '800a0e78'

    L'operazione non è consentita se l'oggetto è chiuso.

    ....



    Ke noia.. cosa può essere?

    Grazie ancora
    Per la cronaca Questa è la SP:

    codice:
    IF OBJECT_ID ('dbo.Statistiche_FRN') IS NOT NULL
    	DROP PROCEDURE dbo.Statistiche_FRN
    GO
    
    create proc Statistiche_FRN (@Da_Data smalldatetime, @A_Data smalldatetime)
    
    AS
    
    CREATE TABLE #Tmp (Campo1 VARCHAR(200), Campo2 INT, Media_Voto NUMERIC(18,2), Campo4 smalldatetime)
    
    CREATE TABLE #Tmp2 (Campo1 VARCHAR(200), Campo3 NUMERIC(18,2), Campo4 smalldatetime)
    
    INSERT INTO #Tmp
    
    SELECT Campo1,Count(*) AS Campo2,  
    round(avg(convert(NUMERIC(9),Tabella.voto)),1)
    , max(Data)
    FROM Tabella
    where Data between '1/08/2011' and '31/8/2011' 
    GROUP BY TbControlli_Campo1
    ORDER BY TbControlli_Campo1 
    
    INSERT INTO #Tmp2
    SELECT Tabella.Campo1, max(Tabella.Voto), Max(Tabella.Data)
    FROM Tabella
    WHERE Data between '1/08/2011' and '31/8/2011' AND (Tabella.Campo1 <> '' AND Tabella.Data IS NOT NULL)
    GROUP BY Tabella.Campo1
    
    SELECT #TMP.Campo1, #TMP.Campo2, #TMP.Media_Voto, #TMP2.Ult_Voto, #TMP.Campo4 FROM #TMP INNER JOIN #TMP2 
    ON #Tmp.Campo1 = #TMP2.Campo1
    
    
    GO
    Ciao ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.