Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [SQL 2008 R2] Cursore per spedizione mail

    Questa che segue è la mia procedura, il cursore è una prima bozza che ovviamente non funziona. L'esigenza è prelevare tutte le righe dalla tabella ty_Mail ed aggregarle per destinatario in per poi inviare n email (una per destinatario appunto) con tutte le righe di quel destinatario (l'email deve essere spedita tramite sp_send_dbmail).

    [CODE]

    DECLARE

    @ALLERT INT,
    @destinatari varchar (255),
    @oggetto varchar (255),
    @q_no_rientro varchar (750),
    @msg_no_rientro varchar (2000),
    @q_no_timbrature varchar (750),
    @msg_no_timbrature varchar (2000),
    @q_attive varchar (750),
    @msg_attive varchar (750),
    @q_spedite varchar (750),
    @msg_spedite varchar (750)


    SET @destinatari = 'pagani@dussmann.it'
    SET @oggetto = 'Controllo stato Terminali Presenze (DBFOREW..CTL_STATO_TERMINALI) '
    SET @q_no_rientro = 'Select * from ty_segnalazioni where cod_stato = 99'
    SET @msg_no_rientro = ' Terminale in attesa di rientro presso Tymbro Service '
    SET @q_no_timbrature = 'Select * from ty_segnalazioni where cod_stato = 09'
    SET @msg_no_timbrature = 'Terminale attivo senza tibrature '
    SET @q_attive = 'Select * from ty_segnalazioni where cod_stato = 10'
    SET @msg_attive = ' Terminali attivo '
    SET @q_spedite = 'Select * from ty_segnalazioni where cod_stato = 01'
    SET @msg_spedite = ' Terminale spedito '

    TRUNCATE TABLE TY_MAIL

    INSERT INTO TY_MAIL

    SELECT DISTINCT

    ' CDC: '+cdc
    +' IDTERM: '+ID_TERM
    +' CodStato: '+COD_STATO
    +' SEGNALAZIONE: '+@msg_no_rientro
    +' DATA: '+CONVERT(varchar,data_evento,105)
    +' GIORNI: '+GIORNI
    +' RS: '+ISNULL (DES_RS,'N.D.')
    +' PREP: '+ISNULL (DES_PREP,'N.D.')
    +' ROA: '+ISNULL (DES_ROA,'N.D.')
    +' DR: '+ISNULL (DES_DR,'N.D.') SEGNALAZIONE --
    ,ISNULL (MAIL_RS,isnull (MAIL_PREP,ISNULL (MAIL_ROA,'pippo@email.it'))) MAIL

    from bs50.dbforew.dbo.ty_segnalazioni

    where cod_stato = 99



    INSERT INTO TY_MAIL

    SELECT DISTINCT

    ' CDC: '+cdc
    +' IDTERM: '+ID_TERM
    +' CodStato: '+cod_stato
    +' SEGNALAZIONE: '+@msg_no_timbrature
    +' DATA: '+CONVERT(varchar,data_evento,105)
    +' GIORNI: '+GIORNI
    +' RS: '+ISNULL (DES_RS,'N.D.')
    +' PREP: '+ISNULL (DES_PREP,'N.D.')
    +' ROA: '+ISNULL (DES_ROA,'N.D.')
    +' DR: '+ISNULL (DES_DR,'N.D.') SEGNALAZIONE
    ,+ISNULL (MAIL_RS,isnull (MAIL_PREP,ISNULL (MAIL_ROA,'pippo@email.it'))) MAIL

    from bs50.dbforew.dbo.ty_segnalazioni

    where cod_stato = 09


    INSERT INTO TY_MAIL

    SELECT DISTINCT

    ' CDC: '+cdc
    +' IDTERM: '+ID_TERM
    +' CodStato: '+cod_stato
    +' SEGNALAZIONE: '+@msg_spedite
    +' DATA: '+CONVERT(varchar,data_evento,105)
    +' GIORNI: '+GIORNI
    +' RS: '+ISNULL (DES_RS,'N.D.')
    +' PREP: '+ISNULL (DES_PREP,'N.D.')
    +' ROA: '+ISNULL (DES_ROA,'N.D.')
    +' DR: '+ISNULL (DES_DR,'N.D.') SEGNALAZIONE
    ,+ISNULL (MAIL_RS,isnull (MAIL_PREP,ISNULL (MAIL_ROA,'pippo@email.it'))) MAIL

    from bs50.dbforew.dbo.ty_segnalazioni

    where cod_stato = 10

    DECLARE CURMAIL
    CURSOR FOR SELECT DISTINCT MAIL
    FROM TY_MAIL

    OPEN CURMAIL

    FETCH NEXT FROM CURMAIL

    WHILE @@FETCH_STATUS = 0

    DECLARE @MAIL VARCHAR (8000)

    BEGIN

    SELECT * FROM @MAIL
    SELECT SEGNALAZIONE FROM TY_MAIL where MAIL IN (@MAIL)
    FETCH NEXT FROM CURMAIL into @MAIL

    END


    CLOSE CURMAIL
    DEALLOCATE CURMAIL
    IncorrectSyntax

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    231
    potresti creare uno script che ci permetta di creare in locale da noi il tuo db e così possiamo fare le prove della procedura?
    Se la risposta ti è stata in qualche modo di aiuto o ti va di supportarmi metti "mi piace" alla pagina a questo link

    https://www.facebook.com/blogprogrammatori

    Non ti costa nulla!!

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.