日期:2014-05-18  浏览次数:20704 次

除了用xp_cmdshell命令还有没有其他方法可以“联系”外界?
本来是用xp_cmdshell命令,当某表增加记录时建一个目录,以“通知”外界程序,
但xp_cmdshell不安全,删除了,还有什么办法“通知”外界,例如:建个目录,或运行个什么东西~

------解决方案--------------------
sp_OACreate,sp_OAMethod也可以!
------解决方案--------------------
自己写个扩展存储过程


------解决方案--------------------
关注
------解决方案--------------------
up
------解决方案--------------------
学习~~~
------解决方案--------------------
关注
------解决方案--------------------
自己写个
------解决方案--------------------
--sp_OACreate等系统储存过程调用File System Object组件来创建目录

--示例代码:
DECLARE @object int
DECLARE @hr int
DECLARE @src varchar(255), @desc varchar(255)
Declare @tmp int
declare @msg varchar(3000)
declare @strPath nvarchar(512)
--Exec sp_MSGet_Setup_paths @strPath OUTPUT
Set @strPath= 'g:\aaa ' --创建文件夹的路径和名称
--创建Scripting组件实例
EXEC @hr = sp_OACreate 'Scripting.FileSystemObject ', @object OUT
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
RETURN
END
--创建文件夹
EXEC @hr = sp_OAMethod @object, 'CreateFolder ', @tmp OUTPUT , @strPath
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
RETURN
END

--在sql2000和2005里面可以测试成功,7.0不行
2005里面需要先打开ole自动化功能
use master
go
sp_configure 'show advanced options ', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures ', 1;
GO
RECONFIGURE;
GO
------解决方案--------------------
File System Object组件中的方法 网上有的
对文件夹操作的有 CreateFolder,DeleteFolder,GetFolder,MoveFolder,FolderExitst 方法

------解决方案--------------------
頂了