L'esempio ci illustra una grande potenzialità di SQL Server, poter chiamare e gestire chiamate ad oggetti COM presenti sul sistema operativo. Nel nostro caso se avete registrato il componente CDONTS per spedire email ( di default su NT4 Server, no per Windows 98, ME o W2000 professional ) potete create questa store procedure e provare ad inviare una email attraverso SQL Server.
SQL Server usa tre potenti procedure di sistema (scritte in T-SQL) per gestire gli oggetti COM:
1 - sp_OACreate
2 - sp_OAMethod
3 - sp_OADestroy
che permettono di istanziare gli oggetti e richiamarne i metodi.
CREATE PROCEDURE sp_sendmail(
@indirizzo VARCHAR(255),
@messaggio VARCHAR(8000),
@soggetto VARCHAR(255),
@da VARCHAR(255) = 'mio@indirizzo.it') AS
DECLARE @CDO INT, @OLEResult INT, @Out INT
--Crea l'oggetto CDONTS.NewMail
EXECUTE @OLEResult = sp_OACreate 'CDONTS.NewMail', @CDO OUT
IF @OLEResult <> 0 PRINT 'CDONTS.NewMail'
--Chiama il metodo send dell'oggetto
EXECUTE @OLEResult = sp_OAMethod @CDO, 'Send', NULL, @da, @indirizzo, @soggetto, @messaggio, 0
IF @OLEResult <> 0 PRINT 'Send'
--Distruggi l'oggetto CDO
EXECUTE @OLEResult = sp_OADestroy @CDO
RETURN @OLEResult
GO
-- Esempio per lanciare la procedura
--execute sp_sendmail 'luca_milan@freeasp.it','Prova email per il corso TSQL','Email spedita con SQL Server','tuo@indirizzo.it'