3 无法装载 DLL xpsql70.dll 或尘脊该DLL所引用的某一 DLL。原因126(找不到指定模块。)
恢复方派戚渗法:查询分离器连接后,
第一步执行:sp_dropextendedproc "xp_cmdshell"
第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
您好,您使用的是sql2000的数据库,直接原因:SQL Server 2000里的系统存储过程xp_cmdshell有问题。
xpsql70.dll是SQL Server 7.0里的文件,SQL Server 2000对应文件是xplog70.dll,SQL Server 2000里没有弊判xpsql70.dll这个文件。
之所以会在SQL Server 2000上出SQL7.0里文件的提示,可能是用户因安全原因先删除xp_cmdshell,后来K/3或其他系统需新建数据库要调用,用SQL Server 7.0的方法去恢复xp_cmdshell导致DLL文件指定出错。
解决方法是先删除xp_cmdshell,然后用SQL Server 2000的方法恢复:
exec sp_dropextendedproc 'xp_cmdshell'
exec sp_addextendedproc 'xp_cmdshell','xplog70.dll'.
还有几种类似的情况:
a. 如果出错提示是:
未能找到存储过程'master..xpcmdshell'
执行
exec sp_addextendedproc 'xp_cmdshell','xplog70.dll'
可以解决
b. 如果错误提示:
无法装载DLL xplog70.dll 或该DLL所引起的某一DLL
一般是由于用户删除了xplog70.dll或者改名,需要改回名称或者从同版本正常机器拷贝此文件过来。
xp_cmdshell存储过程的作用是让SQL Server在查询分析器里运行Windows *** 作系统命令,目前对SQL Server的安全攻击手段中,利用到这个存储过程的前乎很多,所以部分用户租悔改可能会删掉它,但是V10.3在SQL Server 2000上新建账套要通过xp_cmdshell,可以在新建账套时开启它,之后把它删掉。
查询数据库里有没有xp_cmdshell,可以执行:
select count(*) from master.dbo.sysobjects where xtype='x' and name='xp_cmdshell'
返回值是1就是有xp_cmdshell存储过程。
如果还是无法解决,请您重新安装数据库,谢谢!
删除这个存储过程:执行如下语句exec sp_dropextendproc 'xp_cmdshell'
删除以后坦备仔枯还可以这样可以通过以下语让戚毁句来恢复
exec master.dbo.sp_addextendproc xp_cmdshell @dllname='xplog70.dll'
彻底删除:
所以只有在c盘里直接搜索xplog70.dll ,然后删除
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)