如果用存储过程来调用webservice
那存储过程的功能感觉能做好多事情了?
别自欺欺人了、那些功能还是webservice来实现的...

完整的webservice代码:(也是默认的,新建.asmx文件的时候就有的:)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;namespace webservice
{/// <summary>/// service 的摘要说明/// </summary>[WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)][System.ComponentModel.ToolboxItem(false)]// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 //[System.Web.Script.Services.ScriptService]public class service : System.Web.Services.WebService{[WebMethod]public string HelloWorld(){return "Hello World";}}
}

View Code

http://localhost:44786/service.asmx

具体的页面(路径:http://localhost:44786/service.asmx/HelloWorld)

好吧·默认的一个服务就是的...下面开始讲下重点...如果用存储过程来调用这个服务...

 1 USE [master]
 2 GO
 3 /****** Object:  StoredProcedure [dbo].[U_CallWebService]    Script Date: 11/04/2016 09:57:35 ******/
 4 SET ANSI_NULLS ON
 5 GO
 6 SET QUOTED_IDENTIFIER ON
 7 GO
 8 Create PROCEDURE [dbo].[U_CallWebService]
 9 @parameter varchar(200)--这个现在用不到,以后如果需要参数的话需要的....
10 AS
11 BEGIN
12     DECLARE @OBJ INT
13     DECLARE @URL VARCHAR(500)
14     DECLARE @RESPONSE VARCHAR(3000)
15     DECLARE @RET VARCHAR(1000)
16
17     SET @URL ='http://localhost:44786/service.asmx/HelloWorld'
18     EXEC SP_OACREATE 'MSXML2.ServerXMLHttp',@OBJ OUT
19     EXEC SP_OAMETHOD @OBJ,'Open',NULL,'post',@URL,FALSE
20     EXEC SP_OAMETHOD @OBJ,'send'
21     --@RET : 0(成功)或非零数字(失败),是由 OLE 自动化对象返回的 HRESULT 整数值。
22     EXEC @RET = SP_OAGETPROPERTY @OBJ,'responseText',@RESPONSE OUT
23     IF @RET <> 0
24         BEGIN
25             EXEC sp_OAGetErrorInfo @OBJ
26         END
27         select @RET AS 'ret(0即成功)'
28     --原本以为这个[d]是返回数据中的一个值(例如这样{"d":"Hello World"}),是必须写[d]的
29     --正确的解释是:这个[d]是SELECT 的一个列名,和SELECT GETDATE() AS TIME 中的TIME是一样性质的.指定列名;
30     SELECT @RESPONSE--这个是(无列名)
31     SELECT @RESPONSE[d]
32     SELECT @RESPONSE AS 'd'--SELECT @RESPONSE[d] 等于SELECT @RESPONSE AS 'd'
33     --释放、销毁
34     EXEC SP_OADESTROY @OBJ
35
36 END

存储过程调用webservice

在运行下就可以看到效果了...

不足之处:

0001.<code>EXEC @RET = SP_OAGETPROPERTY @OBJ,'responseText',@RESPONSE OUT</code>

'responseText'即属性值,如果不知道会报错:

Error        Source                Description      HelpFile    HelpID
0x80020006    ODSOLE Extended Procedure     未知名称。       NULL        0

<我调用WCF的时候,调试都可以看到确实运行我的本地WCF的一个服务了,但是这个返回值因为不知道属性名获取不到!>

0010.貌似字符超过8000就会报错...还是4000?总之不能太长...

扩展:

至今还不知道调用WCF的那个属性值是什么!!!

望有搞过这块的不吝(Lin)赐教...

附:

微软关于错误的解决办法(都是English):https://support.microsoft.com/en-us/kb/325492

转载于:https://www.cnblogs.com/love-zf/p/6029437.html

SQL存储过程来调用webservice相关推荐

  1. SQL存储过程中调用存储过程返回的表

    存储过程pro_A返回一个表集合TableA,在存储过程pro_B中以TableA为数据源再做一重过滤,想实现代码复用,因此原意是在存储过程pro_B中调用存储过程pro_A,但事实发现我们不能写成s ...

  2. 在Spring框架中使用SQL存储过程

    Spring框架也支持对SQL存储过程的调用,SQL存储过程是一组预先定义好的SQL语句,并存储到数据库管理系统中,外部程序可以直接调用执行.本课主要讨论在Spring框架中应用程序如何调用MySQL ...

  3. JAVA调用SQL存储过程详解

    1使用不带参数的存储过程 使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转义序列.不带参数的 call 转义序列的语法如下所示: {call procedure-nam ...

  4. java sql函数_Java调用Sql存储过程实例讲解

    1.使用不带参数的存储过程 使用 JDBC 驱动程序调用不带参数的存储过程时,必须使用 call SQL 转 义序列.不带参数的 call 转义序列的语法如下所示: {call procedure-n ...

  5. sql存储过程的创建与调用

    1.简单存储过程的创建和调用 //存储过程test1 create PROCEDURE test1() begin//开始 select * from cst_customer;//中间要做的操作 e ...

  6. vb调用mysql 输入参数,VB如何利用SQL存储过程加入新记录(CreateParameter方法追加参数方法调用比较具体的例子)...

    VB 如何利用SQL存储过程加入新记录 我有一个SQL SERVER 数据库 GS ,已建一个GPDM 表,内有GPDM,GPCN 两个字段. 想利用存储过程实现插入新记录的操作,现在我已经做好了一个 ...

  7. Oracle调用webservice说明

    1.             用途简介 为什么要在Oracle中访问WebService?在系统实现中,有时会有直接在数据库端利用触发器.存储过程等方式进行数据传递.分发的业务,而其中可能会涉及一些业 ...

  8. oracle创建函数和调用存储过程和调用函数的例子(区别)

    创建函数: 格式:create or replace function func(参数 参数类型) Return number Is Begin --------业务逻辑--------- End; ...

  9. SQL存储过程解密研究

    从网上搜索SQL存储过程解密,可以看到一大堆的资料,其内容都基本上都一致,这是先放上一篇: 解密存储过程 本文将以此为基础进行研究,虽能解密成功,但其中解密那一段究其原理是到底是什么,一直也弄不明白, ...

最新文章

  1. 华为员工哀叹:32岁大码农只能在华为等裁,出去薪资没人接得住!出路在哪儿?...
  2. control.add()
  3. 嵌入式C语言代码规范
  4. 体验QQ2011Beta3带来的变化和惊喜
  5. Android 异步获取网络图片并处理图片Out Of Memory 内存溢出问题
  6. SQL PLUS编辑器的一些常用设置
  7. matlab信源编码,常见无失真信源编码算法及Matlab实现比较(27页)-原创力文档
  8. android外接键盘,小米手机如何外接键盘
  9. 华为 OSPF虚链路出现环路了,如何解决?
  10. 不懂域名系统,何谈网络编程
  11. 超简单的晃咖、小咖秀视频去水印下载方法
  12. 黑苹果之联想Y430P亮度记忆功能
  13. 直角三角形面积Java_怎么用Java计算三角形的周长和面积
  14. Connection to the other side was lost in a non-clean fashion
  15. word参考文献交叉引用的多项引用,改逗号和破折号形式
  16. 【Unity小游戏】 横版2D射击小游戏 效果展示+完整项目源码【超级简单,自己也可以做游戏玩了】
  17. 【复杂句的逻辑练习题】规则变化的过去分词
  18. 「数据管理」顶级数据库管理系统供应商
  19. 常规网站改版是否对搜索引擎友好?
  20. linux下挂载gpt磁盘分区,Linux下使用gpt给磁盘分区、格式化、挂载

热门文章

  1. 开发自己的安卓APP——悬浮备忘录(使用FloatingWindow)
  2. python数据驱动测试设计_python--DDT数据驱动测试
  3. 基于Tor网络的HTTP代理搭建过程
  4. c语言整形符号位_c语言获取符号位整数和浮点
  5. libwebsockets 记录
  6. uni-app 获取单选 多选功能
  7. 脑机接口新进展!即插即用,不用每天校准
  8. wps去除所有英文下的红色波浪线
  9. Stduino学习(二十七)3A降压MP1584en模块
  10. SEO基础:什么是结构化数据?