這是調用Scripting.FileSystemObject對象刪除一個文件的例子,慢慢看.不懂再問
declare @hr int
declare @object int
exec @hr=sp_oacreate 'Scripting.FileSystemObject',@object out   '建立對象
EXEC @hr = sp_OAMethod @object, 'DeleteFile',   null,'E:\vb\sap\data\vbap.txt',false

解决方案 »

  1.   

    用sp_addextendedproc (具体看相关帮助)
    如:
    use master
    go
    if exists (select * from sysobjects where name ='xp_mm' and type ='X')
    begin
       exec sp_dropextendedproc 'xp_mm'
       DBCC xp_mm(FREE)
    end
    go
    sp_addextendedproc 'xp_mm','xp_mm.dll'
    go
    grant exec on xp_mm to public使用时:
    execute master.dbo.xp_mm 参数
      

  2.   

    如果你的dll本身是ole对象,可以使用whaisheng(sheng)所说的方法,通过存储过程创建对象,来使用它,所有的处理ole对象的存储过程包括:
    调用 sp_OACreate 创建对象。
    调用 sp_OAGetProperty 获取属性值。
    调用 sp_OASetProperty 将属性设为新值。
    调用 sp_OAMethod 以调用某个方法。
    调用 sp_OAGetErrorInfo 获取最新的错误信息。 
    调用 sp_OADestroy 释放对象。 
    如果你的dll不是ole对象,那就只能在编写一个ole对象来封装这个dll。
    或者干脆写成一个扩展存储过程,在扩展存储过程中调用dll的函数,如果按GoZheng(我也想飞)所说的直接注册可能不行,因为扩展存储过程有它特定的接口函数和格式。