sql server 利用存储过程http请求调用URL链接访问方法
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'Ole Automation Procedures';
GO
开启权限配置
DECLARE @return_value int,
@status int EXEC @return_value = [dbo].[P_HttpRequestData]
@URL = N'https://test.GoldApi.com/Api/GetGoldSales',
@status = @status OUTPUT SELECT @status as N'@status'
调用存储
USE [Test]
GO SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[P_GetGoldSales]
AS
set nocount on
set transaction isolation level read uncommitted
set xact_abort on exec [P_HttpRequestData] 'https://test.GoldApi.com/Api/GetGoldSales'
存储调用存储
USE [Test]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[P_HttpRequestData] (
@URL varchar(500),
@status int=0 OUT,
@returnText nvarchar(2000)='' OUT
)
AS
BEGIN
DECLARE @object int,--声明变量
@errSrc int --声明变量
/*初始化*/
EXEC @status = SP_OACreate 'Msxml2.ServerXMLHTTP.3.0', @object OUT;
IF @status <> 0
BEGIN
EXEC SP_OAGetErrorInfo @object, @errSrc OUT
RETURN
END
/*创建链接*/
EXEC @status= SP_OAMethod @object,'open',NULL,'GET',@URL
IF @status <> 0
BEGIN
EXEC SP_OAGetErrorInfo @object, @errSrc OUT
RETURN
END
EXEC @status=SP_OAMethod @object,'setRequestHeader','Content-Type','application/x-www-form-urlencoded'
/*发起请求信息*/
EXEC @status= SP_OAMethod @object,'send',NULL
IF @status <> 0
BEGIN
EXEC SP_OAGetErrorInfo @object, @errSrc OUT
RETURN
END
/*获取返回*/
EXEC @status= SP_OAGetProperty @object,'responseText',@returnText OUT
IF @status <> 0
BEGIN
EXEC SP_OAGetErrorInfo @object, @errSrc OUT
RETURN
END
END;
创建http请求的存储过程
访问URL地址的 API控制器中创建方法
public void GetGoldSales(DataRequest<int> request, DataResponse<ResultModel> response)
{
var result = new ResultModel();
result.Status = ResultStatus.Success;
result.Message = "获取信息成功!";
try
{
var Goldno =string.Empty();
var List = GetList(request.ObjectData);
if (List.Count > )
{foreach (var item in List)
{
Goldno+= item + "\r\n";
} if (Goldno!=null)
{
var str = $"货物上架的销售价格异常\r\n 异常货品编号:\r\n{Goldno}请及紧急查看并修复!"; SendErrorMsg(str);
}
} }
catch (Exception ex)
{
result.Status = ResultStatus.Fail;
result.Message = "获取销售价格信息失败!" + ex.Message;
}
response.ObjectData = result; }
sql server 利用存储过程http请求调用URL链接访问方法的更多相关文章
- 在易语言中调用MS SQL SERVER数据库存储过程方法总结
Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接返回(return)一个值,通过output ...
- SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程(支持单表或多表结查集分页)
SQL Server利用RowNumber()内置函数与Over关键字实现通用分页存储过程,支持单表或多表结查集分页,存储过程如下: /******************/ --Author:梦在旅 ...
- sql server系统存储过程大全
关键词:sql server系统存储过程,mssql系统存储过程 xp_cmdshell --*执行DOS各种命令,结果以文本行返回. xp_fixeddrives --*查询各磁盘/分区可用空间 x ...
- SQL Server 利用Profiler观察执行计划是否重用时SP:Cachemiss,SP:CacheInsert以及SP:CacheHit的含义
本文出处:http://www.cnblogs.com/wy123/p/6913055.html 执行计划的缓存与重用 在通过SQL Profile观察一个SQL语句或者存储过程是否有可用的缓存执行计 ...
- 在sql server中建存储过程,如果需要参数是一个可变集合怎么处理?
在sql server中建存储过程,如果需要参数是一个可变集合的处理 原存储过程,@objectIds 为可变参数,比如 110,98,99 ALTER PROC [dbo].[Proc_totalS ...
- SQL Server中存储过程 比 直接运行SQL语句慢的原因
问题是存储过程的Parameter sniffing 在很多的资料中都描述说SQLSERVER的存储过程较普通的SQL语句有以下优点: 1. 存储过程只在创造时进行编译即可,以后每次执行存储过 ...
- Sql server 事务 存储过程
事务( Transaction )是并发控制的单位,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位. 通过事务,SQL Server能将逻辑相关的一组操作绑定在一起, ...
- SQL Server中的CLR编程——用.NET为SQL Server编写存储过程和函数
原文:SQL Server中的CLR编程--用.NET为SQL Server编写存储过程和函数 很早就知道可以用.NET为SQL Server2005及以上版本编写存储过程.触发器和存储过程的,不过之 ...
- SQL Server中存储过程比直接运行SQL语句慢的原因
原文:SQL Server中存储过程比直接运行SQL语句慢的原因 在很多的资料中都描述说SQLSERVER的存储过程较普通的SQL语句有以下优点: 1. 存储过程只在创造时进行编译即可,以 ...
随机推荐
- 模块加载——modprobe和insmod的区别(转)
转载地址:https://blog.csdn.net/qianyizhou17/article/details/44135133 linux设备驱动有两种加载方式insmod和modprobe,下面谈 ...
- dfs 全排列 使用交换——含重复元素和非重复元素
15. 全排列 中文 English 给定一个数字列表,返回其所有可能的排列. 样例 样例 1: 输入:[1] 输出: [ [1] ] 样例 2: 输入:[1,2,3] 输出: [ [1,2,3], ...
- Linux-导入已安装的Linux系统
之前在安装过一个Linux系统,由于重装电脑需要将之前安装的系统重新移动到VMWare中,让Linux系统能够重新运行起来,这样也省去了每次重新安装系统的麻烦. 废话不多说,咱们直接看是如何做? 1) ...
- 项目Beta冲刺(团队) ——随笔集合
课程名称:软件工程1916|W(福州大学) 作业要求:项目β冲刺(团队) 团队名称:葫芦娃队 作业目标:汇总这次冲刺项目的所有随笔文件. 队员学号 队员昵称 博客地址 041602421 der hi ...
- 如何获取gitee上的项目?
对于没有使用过github/gitee的朋友来说,估计是有点懵. 下面举个例子,比如获取我的gitee上的python接口自动化测试框架 访问主页:https://gitee.com/uncleyon ...
- Brief Introduction to SDK – JRE – JVM – JIT
Brief Introduction to SDK – JRE – JVM – JIT SDK This is complete collection of Java stuff, as it has ...
- OpenCV 学习笔记(0)两幅图像标定配准
参考教程 依赖opencv扩展库,使用sifi匹配 保存配准信息 "./config/calibratedPara.yaml" #include <iostream> ...
- vote
package 投票管理; import java.io.*; import java.awt.*; import java.util.*; import java.applet.*; import ...
- 在服务器搭建git仓库
使用root登录服务器 添加一个新用户(git仓库的所有者) useradd gituser # gituser---> 用户名字 设置密码 passwd gituser 配置sshd服务参数 ...
- 51 Nod 1135 原根
基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根.(其中φ(m)表示m的欧拉函数) 给出1个质数P ...