sp_OACreate
在 Microsoft SQL Server 实例上创建 OLE 对象实例。语法
sp_OACreate progid, | clsid,
objecttoken OUTPUT
[ , context ]参数
progid是要创建的 OLE 对象的程序标识符 (ProgID)。此字符串描述该 OLE 对象的类,其形式如下:'OLEComponent.Object'OLEComponent 是 OLE 自动化服务器的组件名称,Object 是 OLE 对象名。指定的 OLE 对象必须有效并且必须支持 IDispatch 接口。例如,SQLDMO.SQLServer 是 SQL-DMO SQLServer 对象的 ProgID。SQL-DMO 的组件名称为 SQLDMO,SQLServer 对象是有效的,并且同所有 SQL-DMO 对象一样,SQLServer 对象支持 Idispatch。clsid是要创建的 OLE 对象的类标识符 (CLSID)。此字符串描述该 OLE 对象的类,其形式如下:'{nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}'指定的 OLE 对象必须有效并且必须支持 IDispatch 接口。例如,{00026BA1-0000-0000-C000-000000000046} 是 SQL-DMO SQLServer 对象的 CLSID。objecttoken OUTPUT是返回的对象令牌,并且必须是数据类型为 int 的局部变量。该对象令牌用于标识所创建的 OLE 对象,并将在调用其它 OLE 自动化存储过程时使用。context指定新创建的 OLE 对象要在其中运行的执行上下文。如果指定,那么此值必须为下列值之一:1 = 仅为进程内 (.dll) OLE 服务器
4 = 仅为本地 (.exe) OLE 服务器
5 = 进程内 OLE 服务器和本地 OLE 服务器均可如果未指定,其默认值为 5。此值将在调用 CoCreateInstance 时作为 dwClsContext 参数传递。若允许使用进程内 OLE 服务器(通过使用上下文值 1 或 5 或者不指定上下文值),该服务器将可以访问 SQL Server 拥有的内存和其它资源。进程内 OLE 服务器可能会破坏 SQL Server 的内存或资源并导致不可预知的结果,如 SQL Server 访问违规。当上下文值指定为 4 时,本地 OLE 服务器不能访问任何 SQL Server 资源,因而不能破坏 SQL Server 的内存或资源。说明 此存储过程的参数按位置指定,而不是按名称指定。
返回代码值
0(成功)或非零数字(失败),是由 OLE 自动化对象返回的 HRESULT 的整数值。
在 Microsoft SQL Server 实例上创建 OLE 对象实例。语法
sp_OACreate progid, | clsid,
objecttoken OUTPUT
[ , context ]参数
progid是要创建的 OLE 对象的程序标识符 (ProgID)。此字符串描述该 OLE 对象的类,其形式如下:'OLEComponent.Object'OLEComponent 是 OLE 自动化服务器的组件名称,Object 是 OLE 对象名。指定的 OLE 对象必须有效并且必须支持 IDispatch 接口。例如,SQLDMO.SQLServer 是 SQL-DMO SQLServer 对象的 ProgID。SQL-DMO 的组件名称为 SQLDMO,SQLServer 对象是有效的,并且同所有 SQL-DMO 对象一样,SQLServer 对象支持 Idispatch。clsid是要创建的 OLE 对象的类标识符 (CLSID)。此字符串描述该 OLE 对象的类,其形式如下:'{nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn}'指定的 OLE 对象必须有效并且必须支持 IDispatch 接口。例如,{00026BA1-0000-0000-C000-000000000046} 是 SQL-DMO SQLServer 对象的 CLSID。objecttoken OUTPUT是返回的对象令牌,并且必须是数据类型为 int 的局部变量。该对象令牌用于标识所创建的 OLE 对象,并将在调用其它 OLE 自动化存储过程时使用。context指定新创建的 OLE 对象要在其中运行的执行上下文。如果指定,那么此值必须为下列值之一:1 = 仅为进程内 (.dll) OLE 服务器
4 = 仅为本地 (.exe) OLE 服务器
5 = 进程内 OLE 服务器和本地 OLE 服务器均可如果未指定,其默认值为 5。此值将在调用 CoCreateInstance 时作为 dwClsContext 参数传递。若允许使用进程内 OLE 服务器(通过使用上下文值 1 或 5 或者不指定上下文值),该服务器将可以访问 SQL Server 拥有的内存和其它资源。进程内 OLE 服务器可能会破坏 SQL Server 的内存或资源并导致不可预知的结果,如 SQL Server 访问违规。当上下文值指定为 4 时,本地 OLE 服务器不能访问任何 SQL Server 资源,因而不能破坏 SQL Server 的内存或资源。说明 此存储过程的参数按位置指定,而不是按名称指定。
返回代码值
0(成功)或非零数字(失败),是由 OLE 自动化对象返回的 HRESULT 的整数值。
调用 OLE 对象的方法。语法
sp_OAMethod objecttoken,
methodname
[, returnvalue OUTPUT]
[ , [ @parametername = ] parameter [ OUTPUT ]
[...n]]参数
objecttoken是先前用 sp_OACreate 创建的 OLE 对象令牌。methodname是要调用的 OLE 对象的方法名。returnvalue OUTPUT是该 OLE 对象的方法的返回值。如果指定,那么它必须是适当数据类型的局部变量。如果方法返回单个值,那么或者为 returnvalue 指定一个局部变量,以便在该局部变量中返回方法的返回值,或者不指定 returnvalue,以单列、单行结果集的形式将方法返回值返回给客户端。如果方法返回值是 OLE 对象,那么 returnvalue 必须是数据类型为 int 的局部变量。对象令牌将保存在该局部变量中,并且可由其它 OLE 自动化存储过程使用。当方法返回值是数组时,如果指定了 returnvalue,那么该值将被设置为 NULL。在下列情况下会出现错误: 指定了 returnvalue,但是方法并不返回值。
方法返回二维以上的数组。
方法以输出参数的形式返回数组。
[@parametername =] parameter [OUTPUT]是方法参数。如果指定,那么 parameter 必须是适当数据类型的值。若要获取输出参数的返回值,parameter 必须是适当数据类型的局部变量,并且必须指定 OUTPUT。如果指定的是常量参数,或未指定 OUTPUT,那么输出参数的任何返回值均被忽略。如果指定,则 parametername 必须是 Microsoft® Visual Basic® 命名参数的名称。要注意 @parametername 不并是 Transact-SQL 局部变量。将去掉符号 (@),并将 parametername 作为参数名传递给 OLE 对象。指定所有位置参数后才能指定命名参数。n是表示可以指定多个参数的占位符。说明 @parametername 可以是命名参数,因为它是指定方法的一部分,并将直接传递给对象。此存储过程的其它参数是按位置指定的,而不是按名称。
返回代码值
0(成功)或非零数字(失败),是由 OLE 自动化对象返回的 HRESULT 的整数值。
Declare @RetVal int
Exec @RetVal=sp_OACreate 'Excel.Application',@Object OUTPUT
后来在google搜了一下英文文档大致了解到应该是一个关于版本控制的组件. 只是找不到具体详细的文档.我猜应该是vss sdk之类中的东西.
现在还在下载 vss sdk下下来看看有没有.