exec xp_cmdshell 'dir c:\*.exe'

解决方案 »

  1.   

    补充:COM OLE对象调用
    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 的整数值。有关 HRESULT 返回代码的更多信息,请参见 OLE 自动化返回代码和错误信息。 注释
    已创建的 OLE 对象在 Transact-SQL 语句批处理结束时会自动释放。权限
    只有 sysadmin 固定服务器角色的成员才能执行 sp_OACreate。
      

  2.   

    谢谢各位老兄,还有我想知道当我创建了@object (COM对象的实例后),如果调用它的方法?也是加个"."吗?如:@object.addit(1,2)??