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. 存储过程只在创造时进行编译即可,以 ...
随机推荐
- HTTP/2和Python的支持现状-2019-10
背景: 大概2019年9月份,天猫全面升级了HTTP/2的支持,并且加强了HTTP/1的访问限制,也可能很早前就这么做了, 但之前一直没限制HTTP/1的访问.之所以发现这个问题,是因为写的爬虫突然失 ...
- flask 源码浅析(flask 如何处理请求(多线程,多进程,IO多路复用))
2018-04-04 13:09:47 lucky404 阅读数 5724更多 分类专栏: python 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接 ...
- BLE——低功耗蓝牙(Bluetooth Low Energy)
1.简介 以下蓝牙协议特指低功耗蓝牙协议. 蓝牙协议是由SIG制定并维护的通信协议,蓝牙协议栈是蓝牙协议的具体实现. 各厂商都根据蓝牙协议实现了自己的一套函数库——蓝牙协议栈,所以不同厂商的蓝牙协议栈 ...
- win10如何找回自带的照片查看器
1.接着我们在打开的记事本中一字不差的输入以下代码 Windows Registry Editor Version 5.00 ; Change Extension's File Type [HKEY_ ...
- cron使用
每天1点执行脚本 0 1 * * * /home/xtrabackup.sh service crond restart / systemctl restart crond 每隔5分钟 */5 * * ...
- Java 多线程学习扩展
http://www.imooc.com/video/5176 一.如何扩展Java并发知识 Java Memory Mode JMM描述了Java线程如何通过内存进行交互 happens-befor ...
- vue基于iview树状表格,封装完善
先安装iview后在使用 完善按钮不显示问题 ,当children过多时,点击不动问题等 封装 <template> <div :style="{width:tableWi ...
- CLR Exception---E0434F4D
什么是CLR Exception---E0434F4D 就是公共语言运行时(CLR)异常,异常代码为0xE0434F4D.因此任何托管异常,如NullReferenceException.invali ...
- micronaut 学习 二 创建一个简单的服务
micronaut 提供的cli 很方便,我们可以快速创建具有所需特性的应用,以下是一个简单的web server app 创建命令 mn create-app hello-world 效果 mn c ...
- fpm 打包跨平台rpm 包的一个问题
平时我们开发机器可能使用的是mac 系统,但是部署机器kennel是linux,默认会有一个操作系统的问题, 我们可以在打包的时候指定os版本信息 参考 --rpm-os linux 参考例子 一个构 ...