用COM自动服务扩展SQL Server功能
2007-05-15 09:32:50 来源:WEB开发网SQL Server的T-SQL编程语言在数据存储和恢复方面功能强大,但在与SQL Server数据库之外的系统交互方面则功能较弱。然而,我们可以通过SQL Server内置的COM自动操作环境来克服这个限制,SQL Server内置的COM自动操作环境可以使用户在存储过程中自动操作COM对象。
在SQL Server 7.0和SQL Server 6.5中提供了7个扩展的存储过程,可以通过自己开发的或Office等现成的COM对象扩展SQL Server的功能。SQL Server还提供了一种错误处理机制,可以把出错信息写到SQL代理日志中。利用COM自动化操作服务,还可以把SQL Server与微软的Exchange Server、Index Server和其他可以通过COM自动化操作服务控制其他软件进行集SQL Server 6.5引进了对象自动操作环境,它最初被称作OLE。随着时间的变迁对象操作的名称也有所变化,然而与SQL Server 6.5相比,SQL Server 7.0中的自动操作环境没有改变,因此微软的文档中仍然把这一功能称作OLE操作而不是COM操作,在查阅SQL Server在线手册(BOL)时尤其需要注意这一点。下面我们来讨论如何使用SQL Server的COM自动操作存储过程以及COM自动操作如何帮助我们解决现实的编程问题。
COM操作的细节
表1列出了SQL Server中的7个用于COM操作的扩展存储过程。当自动操作一个COM对象时,需要首先通过调用sp_OACreate建立一个COM对象的实例,然后通过一系列的sp_OAGetProperty、sp_OASetProperty和sp_OAMethod调用完成需要完成的任务,在完成对COM对象的操作后,还需要调用sp_OADestroy释放该对象。在详细地研究每个储存过程时,请注意二个很重要的问题。
第一,必须提供调用的所有参数,因为自动操作功能不支持有名参数,如果不能使用一个详细的参数,需要向它传递一个NULL作为占位符;第二,每个调用返回一个整数类型的HRESULT,如果调用成功则该值为0。在后面,我们将讨论如何处理返回值为非。
更多精彩
赞助商链接