用COM自动服务扩展SQL Server功能
2007-05-15 09:32:50 来源:WEB开发网Declare @Source varchar(100), @Description varchar(255), @HelpFile
Exec sp_OAGetErrorInfo @Object, @Source OUTPUT, @Description OUTPUT,
SQL Server在线手册还提供了一个有关sp_DisplayOAErrorInfo存储过程的例子,该存储过程可以调用sp_OAGetErrorInfo把返回的值组织成格式化的字符串,以便把该信息写入日志文件中。
关于sp_DisplayOAErrorInfo的更详细的信息,请参阅工具条, 另外,调用sp_OAStop储存过程可以关闭SQL Server的COM自动操作环境,它无需任何参数。关闭自动操作环境在大多数情况下并非是必需的,第一次调用sp_OACreate时自动操作环境会自动开启,SQL Server关闭时自动操作环境也会自动关闭。如果一个存储过程正在对一个对象进行自动操作,而另一个过程调用sp_OAStop时就会出现错误,因此我们不建议在程序中调用sp_OAStop,只有在调试一个没有运行的过程时,才可以通过一个查询窗口调用它。
在实际工作中使用COM自动操作
至此,我们已经学习了如何使用每一个COM自动操作存储过程,我们现在来讨论一下一个综合应用它们的例子。程序清单1是一个名字为sp_OpenWordIfCoProcAvailable的过程,在这个过程中,我们用sp_OACreate创建了一个Microsoft Word的实例,然后使用sp_OAGetProperty来获取Word的MathCoProcessorAvailable属性,如果sp_OAGetProperty返回1,则sp_OpenWordIfCoProcAvailable向调用过程返回Word对象的对象标记;否则,
sp_OpenWordIfCoProcAvailable关闭Word,并返回0。为了节省版面,我们只调用了出错处理过程一次,在实际应用中,应该在每次调用自动操作存储过程后都调用出错处理过程。注意,为对Word进行自动操作,应该在安装SQL Server的机器上安装Word。
赞助商链接