用COM自动服务扩展SQL Server功能
2007-05-15 09:32:50 来源:WEB开发网存储过程 描述
sp_OACreate 建立自动操作对象的一个实例
sp_OADestroy 释放一个对象的实例
sp_OAGetErrorInfo 从其他过程返回的HRESULT中获得错误描述信息
sp_OAGetProperty 把一个对象的属性存储在结果集或局部变量中
sp_OASetProperty 改变一个对象属性的值
sp_OAMethod 执行对象的方法,向方法传递参数,并得到返回值
sp_OAStop 关闭SQL Server的自动操作环境
表 1: SQL Server的COM自动操作存储过程
COM操作必须以调用sp_OACreate存储过程开始,语法格式如下所示:
sp_OACreate progid | clsid, objecttoken OUT.PUT,
[context:]
第一个参数是程序ID(ProgID━━一个应用程序名.类名形式的字符串,例如:
Excel.Application,)或者一个类ID(CLSID━━一个nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn形式的全球唯一的ID),它标明你希望创建实例的COM对象。
在可能的情况下,我建议使用ProgID参数,因为它易于输入和记忆。你会发现,只有很少的希望自动操作的对象没有ProgID,如果偶尔碰上这样的对象,就只有使用CLSID了。第二个变量objecttoken也是一个整型变量,一个对象的标记是指向SQL Server创建的对象的句柄和指针,我们需要在随后的对对象的自动操作中使用这个返回的对象标记来确定这个对象。最后的context变量是可选的,可以强迫创建的对象使用某种自动操作的机制。如果其值为1,则要求对象在一个ActiveX DLL文件中;值为4,则要求对象在ActiveX EXE服务器中;如果是缺省的值5,则可以使用任一自动操作。在这里我们建议使用缺省的选项,而无须为context参数提供一个恰当的值。下面调用op_OACreate 的命令将创建一个微软的Excel程序的实例:
赞助商链接