--当然可以sp_addextendedproc
将新扩展存储过程的名称注册到 Microsoft® SQL Server™ 上。语法
sp_addextendedproc [ @functname = ] 'procedure' ,
    [ @dllname = ] 'dll'参数
[ @functname = ] 'procedure'在动态链接库 (DLL) 内调用的函数名称。procedure 的数据类型为 nvarchar(517),没有默认设置。procedure 能够可选地包含 owner.function 形式的所有者名称。[ @dllname = ] 'dll'包含该函数的 DLL 名称。dll 的数据类型为 varchar(255),没有默认设置。返回代码值
0(成功)或 1(失败)结果集
无注释
使用 Microsoft Open Data Services 的程序员可以创建扩展存储过程。创建扩展存储过程后,必须使用 sp_addextendedproc 将此存储过程添加到 SQL Server 上。有关更多信息,请参见创建扩展存储过程。 只将一个扩展存储过程添加到 master 数据库中。若要从非 master 的数据库中执行扩展存储过程,请用 master 限定扩展存储过程的名称。sp_addextendedproc 将条目添加到 sysobjects 中,用 SQL Server 注册新扩展存储过程名称。同样在 syscomments 表中添加一个条目。权限
只有 sysadmin 固定服务器角色的成员才可以执行 sp_addextendedproc。示例
下例添加 xp_hello 扩展存储过程。USE master
EXEC sp_addextendedproc xp_hello, 'xp_hello.dll'

解决方案 »

  1.   

    --注册后,就可以像调用普通存储过程一样来调用:exec master..xp_hello
    --以后不用时,可以用下面的语句删除:USE master
    EXEC sp_dropextendedproc 'xp_hello'
      

  2.   

    我用VC++编写的DLL
    里面有一个DES函数exec sp_addextendedproc 'DES','F:\3DES\3DES\3des.dll'
    成功exec DES 1,2ODBC: 消息 0,级别 16,状态 1
    无法在库 F:\3DES\3DES\3des.dll 中找到函数 DES。原因: 127(找不到指定的程序。)。
      

  3.   

    你看看联机帮助上,关于如何创建扩展DLL的步骤和要求,我不会写VC
      

  4.   

    请问楼主, 找到如何解决你的问题的办法了吗? 我也遇到了同样的错误信息,不知道是否需要将dll注册到windows系统先,试用regsvr32注册,还是不行。
    请高手指教,请邹建帮忙!Thx