本帖最后由 bruce 于 2020-7-17 09:44 编辑

说一个使用场景。很多时候我们需要调用外部数据源(数据库),来完成我们取数。

目前云表的,外部数据源 只支持 数据表和视图,不支持存储过程。
我们需要取数一些复查的查询数据时,只能先建立一个视图。
调用视图时,有一个问题,视图数据量非常大的时候,接口取数非常慢,会导致云表提示超时。其实我们需要的数据只有一点点,而视图又不支持参数传递。除了优化视图sql外还有什么办法吗?

答案: 直接调用存储过程,传递参数过去,直接取出我们需要的数据。
如何调用呢?我的思路如下。
在云表中建立两个个辅助模板。第一个模板为,《触发存储过程模板,建立一个【 单据编号】 字段,设置好权限。就可以了。设计思路入下图,下图 因为我需要传递的参数较多,设计的字段也比较多。

第二个模板为,《临时数据模板 。 数据表,建立为主表。字段设置:一个单据编号字段,和需要返回的其他字段 ,保存模板。
建立数据接口 { 查询数据(单据编号,其他参数1,他参数2,...) }
注意:图仅供参考,各位按照自己 的实际需求设计模板字段。


在云表的数据库中建立好存储过程(sql),设定好参数变量(包含单据编号)。编写代码规则如下,当执行存储过程时,将查询结果的数 据插入到 《临时数据模板中对应的字段。


③在数据库中找到这个《触发存储过程模板的数据表,建立 insert 触发器,执行存储过程。


数据库这里的操作就完成了。


④在需要取数的模板 建立填表公式,

1 添加 工具栏 按钮 【取数】;
2 添加填表公式 “新建表单模板选择《临时表》;

3 添加赋值公式。 数据来源1 选择模板数据源接口, 找到《临时数据模板》 中的{ 查询数据(单据编号,其他参数1,他参数2,...) } 这个接口,绑定好参数, 然后进行对应的赋值操作。






QQ图片20200717092828.png

QQ图片20200717092828.png

QQ图片20200717092905.png

QQ图片20200717092905.png
对该帖+5经验,并说 很给力!
+1 0
14条回帖
沈阳 云侠 2020-7-17 09:30:06
7#
更新了图片
+1 0
需要登陆后才可进行回复 登录

玩转云表从入门到精通
扫码添加微信立即领取

·云表创始人授课文件
·加入社群与培训学习
·切磋云表开发玩法

商务咨询:0756-3335860
客服咨询
Baidu
map