外部数据源存储过程

来自企业管理软件文档中心
跳转至: 导航搜索

概述

在使用云表过程中,有时我们需要对接到数据库,操作数据库中的表。在需要同时操作多张表时,直接使用云表可能要注册多个模板、创建多条业务公式,并且在执行时不是在一个事务中,相对来说比较繁琐。

这种情况可以通过数据库的存储过程来解決这一问题。



什么是存储过程?

存储过程是在数据库系统中,为了完成特定功能的SQL语句集合,这个存储过程存储在数据库中,一次编译后永久有效,是可以被外部程序调用的一种数据库对象。

存储过程就是数据库SQL语言层面的代码封装与重复使用,通俗而言,就是执行某项工作的一段固定的SQL语句。



存储过程的用法

在数据库对存储过程进行创建、修改、编译、删除等操作。

在云表浏览器中进行调用。

1、数据库端对存储过程的操作

针对不同类型的数据库,在数据库端的操作有所不同,可以根据自己的数据库类型查阅相应的文献资料:


2、云表浏览器如何使用存储过程

数据库创建好存储过程后,只需在云表完成2个步骤,就可以在云表中调用数据库的存储过程。

1、云表对接目标数据库

2、把存储过程设计成数据接口并调试使用 

  • 假设现在设计了2个存储过程,【test_pro_1】【test_pro_2】
  • 【test_pro_1】有2个参数“ID”“Name”,执行的动作为“插入”并“查询”
  • 【test_pro_2】针对同一个数据表,不带参数,执行的动作只有查询”。


第一步:对接目标数据库

可以使用“外部数据源”功能进行对接,在这里不详细描述,请移步查看“外部数据源”的对接方式。

对接外部数据库后,我们就可以在系统管理-外部数据源中,看到数据库中已经创建的所有“存储过程”。


第二步:设计数据接口

把存储过程设计成数据接口,以便在表单中传参数和调用。

1、选择“存储过程”

在外部数据源中,选择要调用的存储过程,如test_pro_2,这是存储过程在数据库中的名称。

001外部数据源中查看存储过程.png


点击左上角【注册】,会打开数据接口的设计窗口。此时“存储过程”已经选择好,不需要修改。 名称是指调用这个存储过程的接口名称,没有命名规范限制,例如“查询学号与姓名”。

002存储过程设计为数据接口1.png


2、选择数据列【易错点】

2.1、确认返回的字段名

在设计数据接口的时候,云表是无法得知存储过程内部的逻辑,也不知道存储过程最终的返回结果,所以,需要数据库开发人员告知云表开发人员,存储过程返回的字段名(即云表中的数据项,在数据库中称为字段)。

如【test_pro_2】返回的字段分别为“ID”“Name”。

003数据库中的存储过程.png


2.2、添加数据项

点击“添加数据项”,输入列名和表达式。

在数据项表达式中,点击下拉列表,选择“存储过程.”后,需要在后面手动输入数据库返回字段的字段名“ID”,另一个数据项则是“存储过程.Name”,如下图:

004存储过程添加数据列.png
005存储过程添加数据列2.png


如此就设置好调用存储过程【test_pro_2】所需的数据接口,回到普通模版的设计界面,就可以在全局数据接口中找到接口“查询学号与姓名”进行调试和使用。

006存储过程全局接口.png


经过调试,查询出数据库中的数据表有3行数据,如下

007存储过程接口调试.png


2.3、带参数的存储过程

前面说到【test_pro_2】是不带参数的存储过程,那带参数的存储过程怎么设置呢?

首先,重复选择“存储过程”,“注册”成数据接口,但是存储过程需要选择【test_pro_1】。

从下图可以看到,名称的后面已经自动生成了参数的提示,参数是由数据库创建存储过程时决定的,云表只能显示,不能更改。

008存储过程带参数的设置.png


然后设置“数据列”,储存过程返回的“ID”“Name”,所以和前面设置是一样的。

009存储过程带参数的数据列设置.png


最后,我们会发现“数据列”选择卡旁边多了一个“参数列表”选择卡,而且里面的参数已经自动生成,这是因为云表只是发出请求调用数据库的存储过程,是不可以修改存储过程内部的参数、逻辑、返回值的,所以参数不能增、删、改,只能设置是否必填和默认值。

010存储过程参数列表.png


设置完毕后,回到普通模版进行调试调用。

假设,我们给参数ID传值“004”,给Name传值“乐图”,会执行插入并查询事件,把这组数据写入数据表,并且把更新后的数据查询出来,如下图:

011存储过程带参数接口调试.png


3、在表单中调用存储过程接口

由于存储过程已经设计成【数据接口】,所以,其调用方法就数据接口的设计方法,没有任何差异。

以填表公式为例,在填表公式中,选择前面设计的接口作为数据源,绑定存储过程参数对应的数据项,进行赋值更新操作,如下图:

012存储过程在表单的调用1.png


设置完毕后,我们进行一下操作,确认是否调用成功:

1、用【test_pro_2】对应“查询学号与姓名”接口,查询数据库中的数据有哪些。

013存储过程在表单的调用2.png


2、用【test_pro_1】对应“插入学号信息并查询”接口,插入一组新数据并查询结果。

014存储过程在表单的调用3.png


总结

存储过程是在数据库中创建,并拥有一个或一组固定执行动作的SQL语句集合。

云表在这个应用场景中,只作为使用者的角色使用存储过程,不可对存储过程进行任何修改,云表将存储过程以数据接口的形式进行设置,以便普通表单进行调用。