sqlserver能否调用webservice发送短信呢?
上班的时候突然有一个想法,sqlserver能否调用webservice发送短信呢?
经过查找资料,终于找到了解决办法,现将步骤贴到下面:
(1)开启sqlserver组件功能,如果不开启这个组件功能,那么在sqlserver执行语句时将不会成功。
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO
以数据库管理员的身份执行上面的语句,返回结果如下:
配置选项 'show advanced options' 已从 0 更改为 1。请运行 RECONFIGURE 语句进行安装。
配置选项 'Ole Automation Procedures' 已从 0 更改为 1。请运行 RECONFIGURE 语句进行安装。
(2)编写SQL调用webservice的语句,代码及注释如下:
DECLARE @object int,@hr int
DECLARE @domain nvarchar(255)
DECLARE @sendMsg nvarchar(200),@Mobile nvarchar(15)
set @Mobile=N'15810337866'
set @sendMsg=N'SQL调用webservice发送测试短信'
--创建MSSOAP.SoapClient组件,存储到@object中
EXEC @hr=sp_OACreate 'MSSOAP.SoapClient',@object out
--'http://218.XXX.154.XXX/MRMService/SmsService.asmx?wsdl'为webservice地址,一定要加‘?wsdl’
--‘SmsService’为webservice名称
EXEC @hr = sp_OAMethod @object, 'mssoapinit',null,'http://218.XXX.154.XXX/MRMService/SmsService.asmx?wsdl','SmsService'
--'SendMsg'为webservice的一个方法,后面跟8个输入参数
EXEC @hr = sp_OAMethod @object, 'SendMsg', @domain OUT,N'999999',@Mobile,@sendMsg,N'110699',N'庞飞阳',N'1',N'总公司',N''
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object
select @object
END
ELSE
BEGIN
select @domain
END
--释放掉@object
EXEC @hr = sp_OADestroy @object
GO
至此,sqlserver能否调用webservice发送短信的功能已经完成,成功收到了短信:“SQL????webservice????????????????????”。
有人会问,为什么收到的短信中,中文部分全部为“????????”呢,仔细查询了一下,sqlserver的编码格式,语句如下:
SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage')
返回值为:936,说明为中文。
而webservice得编码格式为UTF8,sqlserver不支持UTF8格式,所以会出现乱码。
希望有解决办法的高手给以指点,谢谢
sqlserver能否调用webservice发送短信呢?的更多相关文章
- android 中调用接口发送短信
android中可以通过两种方式发送短信 第一:调用系统短信接口直接发送短信:主要代码如下: //直接调用短信接口发短信 SmsManager smsManager = SmsManager.getD ...
- iOS调用系统发送短信和邮件分享
//发送邮件 -(void)sendMail:(NSString*)subject content:(NSString*)content{ MFMailComposeViewController*co ...
- zabbix3调用接口发送短信告警
一.需求 之前使用的邮件告警,由于经常会忽略邮件,所以有时候告警查看的并不及时,所以增加短信告警的,以便及时处理. 二.zabbix-server端的配置 # 需要在zabbix-server端打开A ...
- Android软件开发之发送短信与系统短信库解析
今天我和同学们讨论一下Android平台下如何调用系统方法发送短信.接收短信.系统的短信库相关的问题.进入正题,我们先使用Eclipse工具模拟给自己的模拟器发送一条短信.在Eclipse下打开DDM ...
- Cordova各个插件使用介绍系列(一)—$cordovaSms发送短信
详情链接地址:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/cordova-1-cordovasms/ 这是调用手机发送短信的插件 ...
- java 短信猫发送短信的方法
用java实现短信收发的功能,目前一般项目中短信群发功能的实现方法大致有下面三种: · 1. 向运行商申请短信网关,不需要额外的设备,利用运行商提供的API调用程序发送 ...
- ios调用本地拨打电话,发送短信
电话.短信是手机的基础功能,iOS中提供了接口,让我们调用.这篇文章简单的介绍一下iOS的打电话.发短信在程序中怎么调用. 1.打电话 [[UIApplication sharedApplicat ...
- 短信接口调用以及ajax发送短信接口实现以及前端样式
我们短信api用的是云信使平台提供的非免费短信服务:官网提供的demo有两种,分别是function加其调用.class文件加其调用. 在这里我们用class文件加调用: 首先,ThinkPHP里面自 ...
- 使用Node.js调用阿里云短信的发送以及接收
为了使用Node.js调用阿里云短信服务,我自己写了个npm包, 目前实现了: 使用Node.js调用阿里云短信服务,发送短信: 使用Node.js调用阿里云短信服务以及MNS服务,接收用户上行短信 ...
随机推荐
- poj 3604 Professor Ben
质因数分解:牛人推导公式(1^3+2^3+……+(1+a1)^3)*……*(1^3+2^3+……+(1+ai)^3)…… 链接http://poj.org/problem?id=3604 #inclu ...
- DVB系统几种传输方式
卫星 (DVB-S 及 DVB-S2)有线 (DVB-C)地面无线 (DVB-T)手持地面无线 (DVB-H)
- 获取其它进程窗口中的状态栏信息(FindWindowEx GetWindowThreadProcessId OpenProcess SendMessage轮番轰炸)
HWND hWnd = ::FindWindow(NULL, _T("XXXXX")); if(NULL == hWnd) { return ; } HWND hWndStatus ...
- 解决不安装VC运行库(VC2005,VC2008),程序运行出错的方法
因为VS2005以后程序采用了manifest的生成方式,所以发布的时候要和运行库一起发布.但是我们平时开发和发布的时候如果都要客户安装运行库,那就不太方便了.你可以Microsoft下载:http: ...
- WCF入门(十一)---WCF安全
一个强大的WCF服务安全系统,拥有两种安全模式或级别预期的客户端可以访问的服务.这是常见的分布式事务的安全威胁正在放缓,在很大程度上由WCF决定. 关键的安全功能 WCF服务有四个主要的安全功能,如下 ...
- JAX-RS 方式的 RESTful Web Service 开发
JAX-RS 方式的 RESTful Web Service 开发 ——基于 CXF+Spring 的实现 Web Service 目前在风格上有两大类,一个是基于 SOAP 协议,一个是完全遵循 H ...
- NSDictionary 键值对查找
NSDictionary *dic1=[NSDictionary dictionaryWithObjectsAndKeys: @"1",@"a", ...
- python脚本实例001 - 通过列表内容判断输入输出信息
要点总结: 输入输出方法,input().print()方法 list列表应用,list是一种有序的集合,可以随时添加和删除其中的元素. 条件语句if-else应用 #! /usr/bin/pytho ...
- cocos2dx开发笔记
1.帧动画:SpriteTest=>SpriteAnimationSplit 2.sourceinsight显示代码行 option->document option->editin ...
- rapidxml使用
以前都是用tinyxml,这次开发中解析xml配置文件像尝试一下rapidxml,据说效率很高... RapidXml Manual: http://rapidxml.sourceforge.net/ ...