ExportToWord
Version: SQL Server 7.0/2000
Created by: Alexander Chigrik
(SQL Server Articles, FAQ, Scripts, Tips and Test Exams).
This stored procedure can be used to export the text string into
Microsoft Word. You can pass the text string and the file name
(if the file name was not specifIEd, the c:\ImportToWord.doc
will be used) into this stored procedure, as in the example below:
EXEC ExportToWord @Text = 'Test example',
@filename = 'c:\ImportToWord.doc'
This stored procedure can be used to export the text string into
Microsoft Word. You can pass the text string and the file name
(if the file name was not specifIEd, the c:\ImportToWord.doc
will be used) into this stored procedure, as in the example below:
EXEC ExportToWord @Text = 'Test example',
@filename = 'c:\ImportToWord.doc'
*/
IF OBJECT_ID('ExportToWord') IS NOT NULL DROP PROC ExportToWord
GO
CREATE PROCEDURE ExportToWord (
@Text varchar(200) = null,
@filename varchar(200) = 'c:\ImportToWord.doc'
)
AS
DECLARE @object int,
@Range int,
@Documents int,
@Document int,
@hr int,
@result_str varchar(255)
IF @Text IS NULL
BEGIN
PRINT 'You should write text'
RETURN
END
SET NOCOUNT ON
EXEC @hr = sp_OACreate 'Word.Application', @object OUT
IF @hr <> 0
BEGIN
PRINT 'error create Word.Application'
RETURN
END
EXEC @hr = sp_OAGetProperty @object, 'Documents', @Documents OUT
IF @hr <> 0
BEGIN
PRINT 'error create Documents'
RETURN
END
EXEC @hr = sp_OAMethod @Documents, 'Add', @Document OUT
IF @hr <> 0
BEGIN
PRINT 'error with method Add'
RETURN
END
EXEC @hr = sp_OAGetProperty @Document, 'Range', @Range OUT
IF @hr <> 0
BEGIN
PRINT 'error create Range'
RETURN
END
EXEC @hr = sp_OASetProperty @Range, 'Text', @Text
IF @hr <> 0
BEGIN
PRINT 'error set Text'
RETURN
END
SELECT @result_str = 'SaveAs("' + @filename + '")'
EXEC @hr = sp_OAMethod @Document, @result_str
IF @hr <> 0
BEGIN
PRINT 'error with method SaveAs'
RETURN
END
EXEC @hr = sp_OAMethod @Documents, 'Close'
IF @hr <> 0
BEGIN
PRINT 'error with method Close'
RETURN
END
EXEC @hr = sp_OADestroy @object
IF @hr <> 0
BEGIN
PRINT 'error destroy Word.Application'
RETURN
END
GO