Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di gianjj
    Registrato dal
    Jan 2000
    Messaggi
    27

    [DB] Store procedure - SQL server

    ....vi starete chiedendo: andare in ferie no è? ...vabè manca solo una settimana dai :metallica

    già che in questi giorni fa un caldo torrido ho pensato di studiare un po' le store procedur e vorrei portare il mio scripettino in ASP "pesantissimo" che conteggia dei valori, appunto in una store procedure... mi spiego subito con un esempio:

    CREATE PROCEDURE sp_ArtInCategoria
    SELECT ART_idfornitore
    FROM dbo.ARTicoli
    WHERE ART_idfornitore = '666'
    SELECT @@ROWCOUNT AS RecordCount


    a questo punto so quanti articoli hanno assegnato la categoria 666, ora vorrei rendere quell 666 una variabile in loop per tutte le categorie esistenti, prese da un'altra SELECT es:

    SELECT IDcat,Descr
    FROM dbo.category
    GO

    qundi vorrei generare una report tipo:
    codice:
    Categoria   |    quantità
    ----------------------------
    Orologi     |      20
    Magliette   |      2
    Canotti     |      9
    Tastiere    |     132
    PS: sono 5 livelli di sottocategorie percui in ASP faccio anche una formattazione grafica ma questo lo rimandiamo a settembre

    ...nella mia paginetta in asp funza che è un piacere, premesso che lo genero con un primo ciclo sulle categorie e per ogni record trovato, faccio un ciclo fra gli articoli e mi stampo quelli d'interesse, in una store procedure non so come farlo ...è anche vero che prima di correre e saltare sarebbe già bello stare in piedi, ma sono fatto così

    Ps: il tutto mi serve per poterlo schedulare in un job notturno/settimanale che mi invia una bella mail con le qta nelle varie categoria...

    spero sia tutto chiaro, saluti smanettoni e grazie anticipate
    beer 4 all [_]>[_]>
    GianJJ

  2. #2
    codice:
    CREATE PROCEDURE sp_ArtInCategoria
    
    AS
     
    SELECT IDcat,Descr 
    FROM dbo.category
    e sul tuo progettino:
    codice:
    Dim miaConn as New ADODB.Connection
    miaConn.ConnectionString....
    
    Dim mioRS as New ADODB.Recordset
    mioRS.Open "EXEC StoredProcedure", miaConn, 1, 3
    mioRS conterrà l'elenco come riportato nella tua tabellina:
    codice:
    Categoria   |    quantità
    ----------------------------
    Orologi     |      20
    Magliette   |       2
    Canotti     |       9
    Tastiere    |     132

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  3. #3
    Utente di HTML.it L'avatar di gianjj
    Registrato dal
    Jan 2000
    Messaggi
    27
    vorrei cmq escludere completamente codice asp, la procedura deve essere eseguita completamente da un job

    :bubu: tnks
    GianJJ

  4. #4
    i risultati della StoredProcedure devono comunque essere visualizzati da qualche parte o ho capito male?!

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  5. #5
    Utente di HTML.it L'avatar di gianjj
    Registrato dal
    Jan 2000
    Messaggi
    27

    eccomi

    devo mandarli per email, quindi messi in una variabile :mavieni:
    GianJJ

  6. #6
    all'interno della tua stored procedure sp_ArtInCategoria devi creare il corpo della mail inserendolo in una variabile locale, poi alla fine della stored stessa, al posto delle istruzioni
    codice:
    --qui ti crei la tabellina contenente i dati che vuoi spedire
    DECLARE @strDati VARCHAR(5000)
    SET @strDati...
    
    --e poi costruisci i parametri da passare alla stored procedure di sistema
    DECLARE @strInvioMail VARCHAR(8000)
    
    SET @strInvioMail = '@subject:''Prova invio email'''
    SET @strInvioMail = @strInvioMail + ',@recipients = ''pippo@pippo.it''' 
    SET @strInvioMail = @strInvioMail + ',@message = ' + @strDati + ''
    SET @strInvioMail = @strInvioMail + ',@copy_recipients = ''pluto@pluto.it'''
    SET @strInvioMail = 'exec master.dbo.xp_sendmail ' + @strInvioMail 
    
    EXEC master.dbo.xp_startmail	
    EXEC(strInvioMail)
    EXEC master.dbo.xp_stopmail
    master.dbo.xp_startmail ti serve per avviare la sessione di posta.
    master.dbo.xp_stopmail termina la sessione precedentemente aperta.

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  7. #7
    Utente di HTML.it L'avatar di gianjj
    Registrato dal
    Jan 2000
    Messaggi
    27
    Grazie LadyBlue in tanto mi hai risolto il problema di come mandare una mail con SQLMAIL :metallica

    Copio questa procedura TSQL che ho trovato credo nel book, per capirci:

    codice:
    DECLARE @IntVariable INT
    DECLARE @SQLString NVARCHAR (500)
    DECLARE @ParmDefinition NVARCHAR (500)
    
    /*######################### ##############################
    ###            Build the SQL string once.             ###
    ########################### ##############################*/
    
    SET @SQLString =
         N'SELECT ART_nome FROM MioDatabase.dbo.articoli WHERE ART_category = @level'
    SET @ParmDefinition = N'@level int'
    
    
    
    /*########################## ##############################
    ### Execute the string with the first parameter value. ###
    ############################ ##############################*/
    
    SET @IntVariable = 102 -- Questo valore (102) dovrebbe esere un loop di una select/sp_Categorie
    
    EXECUTE sp_executesql @SQLString, @ParmDefinition,
                          @level = @IntVariable
    
    
    /*########################### ###################################
    ### Execute the same string with the second parameter value. ###
    ############################# ###################################*/
    
    SET @IntVariable = 103 -- idem come per il 102, e via dicendo
    EXECUTE sp_executesql @SQLString, @ParmDefinition,
                          @level = @IntVariable
    è vero che le categorie sono poche, ma non vorrei dover scrivere tutto a mano vorrei automatizarlo :master:


    -3 alle ferie
    GianJJ

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.