| | This article explains how you can create a Microsoft Word document from T-SQL and fax it through a method exposed by its Automation object model. 
 You can create and destroy OLE Automation object using the sp_OACreate and sp_OADestroy, whereas you can use the sp_OAMethod to invoke a method, and the sp_OAGetProperty and sp_OASetProperty to read and write a property.
 
 The following example creates a Word document and retrieves its Application object, which it stores in an Integer variable which represents the COM pointer to the automation interface of the component. Next, it makes the Word application visible by setting the Application's Visible property to True, then it inserts some text into the Word document and finally faxes the document using the SendFax method. Obviously you can use such stored procedures from triggers or other stored procedures, and invoke them from client applications or from the SQL Server Agent.
 
 Sql Server OLE Automation example by Giuseppe Dimauro 04/2000
 | 
 |  Click here to copy the following block |  | DECLARE @WordDocument int DECLARE @WordApplication int
 DECLARE @Content int
 DECLARE @visible int
 DECLARE @hr int
 DECLARE @text varchar(4096)
 
 
 EXEC @hr = sp_OACreate 'word.Document', @WordDocument OUT
 
 
 IF @hr = 0
 EXEC @hr = sp_OAGetProperty @WordDocument, 'Application', @WordApplication OUT
 
 
 IF @hr = 0
 EXEC @hr = sp_OAGetProperty @WordDocument, 'Content', @Content OUT
 
 
 IF @hr = 0
 BEGIN
 set @text = 'Word Document' + char(10) + 'generated by SQL Server'
 EXEC @hr = sp_OASetProperty @Content, 'Text', @text
 END
 
 
 IF @hr = 0
 BEGIN
 EXEC @hr = sp_OASetProperty @WordApplication, 'Visible', 1
 waitfor delay '00:00:10'
 END
 
 
 IF @hr = 0
 EXEC @hr = sp_OAMethod @WordDocument, 'SendFax', NULL, '', 'Invio fax da SQL Server'
 
 IF @hr <> 0
 BEGIN
 print "ERROR OCCURRED: " + cast(@hr as varchar(128))
 RETURN
 END
 | 
 |