下载代码示例

概述

getvalue。sql代码示例使用存储过程(通过运行http_request_json.sql您创建的)和Microsoft®sql Server®2016 transact - sql函数:

  • 调用一个光电子22 REST API端点
  • 解析和objectify返回的JSON字符串
  • 临时表的值导入到一个SQL服务器

示例调用端点的光电子22演示控制器。

先决条件

步骤

在SQL Server Management Studio:

  1. 确保Ole自动化存储过程启用。
  2. 开放和执行http_request_json.sql创建存储过程。
  3. 开放和执行get_values.sql在光电子22 restpac调用端点。groov控制器和插入临时表中返回的值。

获得值的SQL

代码示例

http_request_json.sql

——作者:光电子22——创建日期:2016年9月——重要的是:OLE自动化部分存储在SQL Server必须启用——这个代码示例。有关更多信息,请参见MSDN网站,Ole自动化程序服务器配置选项,——https://msdn.microsoft.com/en-us/library/ms191188.aspx——描述:创建一个存储过程——o调用光电子22 REST调用查询中定义端点——o显示HTTP状态响应——o为JSON字符串响应创建一个临时表——o显示响应——o执行错误处理和清理- - -——你可以扩展这个示例中,例如,通过将记录插入一个永久的表——添加错误处理特定于您检索的值- - -——ISO行为比较运算符和字符串标识符ANSI_NULLSQUOTED_IDENTIFIER——检查过程具有该名称已经存在。——如果这是真的,降低现有的程序在创建一个新的。如果存在(选择*sys对象在哪里类型=“P”的名字=“__o22_http_request_json”)下降过程__o22_http_request_json——创建存储过程和变量传入参数创建过程(dbo]。__o22_http_request_json]@uriVARCHAR(2000年)=,@method_nameVARCHAR(50)=,——输入应该是GET或POST@request_textVARCHAR(马克斯)=,——JSON发送到端点@用户名NVARCHAR(One hundred.),——域\用户名或用户名@密码NVARCHAR(One hundred.),——在纯文本密码@response_textVARCHAR(马克斯)输出——输出值:调用端点的响应作为开始——设置NOCOUNT防止额外的结果集——干扰SELECT语句。NOCOUNT——错误处理(必须通过GET或POST)如果(@method_name=)开始选择FailPoint=方法名必须设置的返回结束@response_text=“失败”——声明变量OLE对象创建(所需处理返回的代码和数据)声明@object_idINT,@h_resultINT,@VARCHAR(255年),@descVARCHAR(255年)——创建实例的OLE对象(所需处理返回的代码和数据)执行@h_result=sp_OACreate“MSXML2.ServerXMLHTTP”,@object_id——错误处理(不是创建OLE对象)如果(@h_result< >0)开始执行sp_OAGetErrorInfo@object_id,@,@desc选择h_result=转换(VARBINARY(4),@h_result),=@,(描述]=@desc,fail_point=“创建失败”,method_name=@method_name转到摧毁返回结束——开放中定义的端点调用查询(GetValues.sql)执行@h_result=sp_OAMethod@object_id,“开放”,,@method_name,@uri,“假”,@用户名,@密码——错误处理(开放端点失败)如果(@h_result< >0)开始执行sp_OAGetErrorInfo@object_id,@,@desc选择h_result=转换(VARBINARY(4),@h_result),=@,(描述]=@desc,fail_point=“开放失败”,method_name=@method_name转到摧毁返回结束——执行POST(不行使的标记值插入SQL Server 2016表代码示例)如果(@method_name=“职位”)开始——设置请求头执行@h_result=sp_OAMethod@object_id,“setRequestHeader”,,“内容类型”,“application / json”- - -如果(@h_result< >0)开始执行sp_OAGetErrorInfo@object_id,@,@desc选择h_result=转换(VARBINARY(4),@h_result),=@,(描述]=@desc,fail_point=“SetRequestHeader失败”,method_name=@method_name转到摧毁返回结束- - -声明@lenINT@len=len(@request_text)- - -执行@h_result=sp_OAMethod@object_id,“setRequestHeader”,,内容长度的,@len- - -如果(@h_result< >0)开始执行sp_OAGetErrorInfo@object_id,@,@desc选择h_result=转换(VARBINARY(4),@h_result),=@,(描述]=@desc,fail_point=“SetRequestHeader失败”,method_name=@method_name转到摧毁返回结束结束——发送GET请求中定义调用查询(GetValues.sql)执行@h_result=sp_OAMethod@object_id,“发送”,,@request_text——错误处理(发送失败)如果(@h_result< >0)开始执行sp_OAGetErrorInfo@object_id,@,@desc选择h_result=转换(VARBINARY(4),@h_result),=@,(描述]=@desc,fail_point=“发送失败”,method_name=@method_name转到摧毁返回结束——声明变量的HTTP状态的反应声明@statusTextVARCHAR(1000年),@状态VARCHAR(1000年)——获取和显示属性值与HTTP状态代码和状态相关的文本执行sp_OAGetProperty@object_id,“状态”,@状态执行sp_OAGetProperty@object_id,“StatusText”,@statusText选择(状态]=@状态,status_text=@statusText,method_name=@method_name——声明一个变量JSON响应声明@结果nvarchar(马克斯)——创建一个临时表JSON响应创建#易被诱惑的(responseTextnvarchar(马克斯))——将JSON响应插入到临时表插入#易被诱惑的(responseText)——获取和显示属性值与JSON响应字符串相关联执行@结果=sp_OAGetProperty@object_id,“responseText”选择@response_text=responseText#易被诱惑的——TODO:如果需要,将JSON字符串插入一个永久的表在数据库中——错误处理如果(@h_result< >0)开始执行sp_OAGetErrorInfo@object_id,@,@desc选择h_result=转换(VARBINARY(4),@h_result),=@,(描述]=@desc,fail_point=“ResponseText失败”,method_name=@method_name转到摧毁返回结束——清理摧毁:执行sp_OADestroy@object_idNOCOUNT结束

get_values.sql

——作者:光电子22——创建日期:2016年9月——注意:你必须执行http_request_json。sql之前运行该脚本——描述:静态查询——o定义端点的光电子22演示控制器和登录参数,——并将它们传递到http_request_json存储过程——o使用OPENJSON函数来解析和objectify返回的字符串——创建一个临时表——o将JSON响应的值插入到临时表——o显示在结果窗口中反应- - -——想法扩展这个示例:——啊,叫一个端点在自己的控制器——o插入返回的值在一个永久的表在数据库中——o执行额外的错误处理——声明一个变量调用JSON响应的端点声明@response_textVARCHAR(马克斯)——将参数传递给__o22_http_request_json存储过程执行(__o22_http_request_json]——TODO:将主机名替换为控制器的IP地址或主机名——TODO:还可以更改端点从控制器得到不同的数据@uri=“http://restpac.groov.com/api/v1/device/strategy/tables/floats/KPI_float_values”,——这个查询执行@method_name=“得到”,@request_text=,——TODO:如果你改变了主机控制器,取代用户名和——密码的登录凭证为您实现提前PAC REST API@用户名=“罗”,@密码=“罗”,——参数用于从存储过程返回数据@response_text=@response_text——显示在结果窗口中返回的JSON字符串记录集选择json_response_kpi_value=@response_text——声明一个表变量数据从控制器声明@kpi_value(——添加一个列值时显示添加到表中(create_timestamp]DATETIME默认的(获取当前日期()),(价值]VARCHAR(255年))——插入解析JSON @kpi_value表变量插入@kpi_value((价值])——使用OPENJSON函数解析和objectify返回的JSON字符串选择(价值]OPENJSON(@response_text)——OPENJSON()函数接受一个JSON响应并返回rowset的JSON数据格式——TODO:返回值插入到一个永久的表在数据库中——TODO:确保数据库中的数据类型支持返回的数据类型——@kpi_value的内容显示在结果窗口选择(价值),(create_timestamp]@kpi_value

在SQL Server中启用Ole自动化程序

在我们的网站上的一些代码示例使用SQL Server的OLE自动化存储过程。因为那些过去被禁用默认情况下,我们提供了一个微软的代码示例,使他们。有关更多信息,请参见微软开发者网络https://msdn.microsoft.com/en-us/library/ms191188.aspx

运行代码示例在SQL Server,您必须有系统管理员权限。

在SQL Server中启用OLE程序