|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册账号
×
转载自:http://www.kterp.com/posts/list/1/-1/1813.page?typeid=-1
主要通过OLE自动化的扩展存储过程来实现,使用之前需要先打开系统中的这个设置项,可能存在安全上的隐患,慎用!
-- regasm /tlb:Mydllname.tlb Mydllname.dll /codebase
-- regsvr32 d:\ASIM2.dll
DECLARE @obj int, @msg int
DECLARE @intRet int, @ret int
DECLARE @intRetCode int, @ret_code int
DECLARE @strErr varchar (255)
DECLARE @strErr1 varchar (255)
/* 首先创建Com 实例 */
EXEC @intRetCode = sp_OACreate 'ASIM.IM', @obj OUT
IF @intRetCode <> 0
BEGIN
/* 创建实例 失败 */
EXEC sp_OAGetErrorInfo @obj, @strErr OUT, @strErr1 OUT
PRINT '创建实例失败,失败的原因是:' + @strErr + ' ' + @strErr1
goto return_lab
END
exec @intRetCode = sp_OACreate 'ASIM.Msg', @msg OUT
IF @intRetCode <> 0
BEGIN
/* 创建实例 失败 */
EXEC sp_OAGetErrorInfo @msg, @strErr OUT, @strErr1 OUT
PRINT '创建实例失败,失败的原因是:' + @strErr + ' ' + @strErr1
EXEC sp_OADestroy @obj
goto return_lab
END
EXEC @intRetCode = sp_OASetProperty @msg, N'ContentType', N'Text/Text'
IF @intRetCode <> 0
BEGIN
/* 调用方法出错 */
EXEC sp_OAGetErrorInfo @msg, @strErr OUT, @strErr1 OUT
PRINT '调用方法失败,失败的原因是:' + @strErr + ' ' + @strErr1
goto err_lab
END
EXEC @intRetCode = sp_OASetProperty @msg, N'Subject', N'Start'
IF @intRetCode <> 0
BEGIN
/* 调用方法出错 */
EXEC sp_OAGetErrorInfo @msg, @strErr OUT, @strErr1 OUT
PRINT '调用方法失败,失败的原因是:' + @strErr + ' ' + @strErr1
goto err_lab
END
EXEC @intRetCode = sp_OASetProperty @msg, 'Body', 'This is a test messenger'
IF @intRetCode <> 0
BEGIN
/* 调用方法出错 */
EXEC sp_OAGetErrorInfo @msg, @strErr OUT, @strErr1 OUT
PRINT '调用方法失败,失败的原因是:' + @strErr + ' ' + @strErr1
goto err_lab
END
EXEC @intRetCode = sp_OASetProperty @obj, 'port', 5001
IF @intRetCode <> 0
BEGIN
/* 调用方法出错 */
EXEC sp_OAGetErrorInfo @obj, @strErr OUT, @strErr1 OUT
PRINT '调用方法失败,失败的原因是:' + @strErr + ' ' + @strErr1
goto err_lab
END
EXEC @intRetCode = sp_OAMethod @obj, 'init', null, 'xiaodi', 'lxd', 'lxd'
IF @intRetCode <> 0
BEGIN
/* 调用方法出错 */
EXEC sp_OAGetErrorInfo @obj, @strErr OUT, @strErr1 OUT
PRINT '调用方法失败,失败的原因是:' + @strErr + ' ' + @strErr1
print @intRetCode
goto err_lab
END
/*创建成功,开始调用*/
EXEC @intRetCode = sp_OAMethod @obj, 'SendMsgEx', @ret out, @msg, 'tj'
IF @intRetCode <> 0
BEGIN
/* 调用方法出错 */
EXEC sp_OAGetErrorInfo @obj, @strErr OUT, @strErr1 OUT
PRINT '调用方法失败,失败的原因是:' + @strErr + ' ' + @strErr1
goto err_lab
END
PRINT '返回的结果是' + Str(@intRet)
err_lab:
EXEC sp_OADestroy @obj
EXEC sp_OADestroy @msg
return_lab:
RETURN |
|