本帖最后由 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-16 15:33:54
感谢您的分享,如果能加一些图片来描述就更好啦
+1 0
铁甲钢拳 云仙 2020-7-16 16:17:56
好的哦
+1 0
郑应春 云师 2020-7-16 21:40:50
5#
看起来,很高级的样子,哈哈。赞一个先。。
+1 0
刘利剑vNf 版主 2020-7-17 08:29:18
6#
可否截图实际案例说明一下,谢谢。
+1 0
沈阳 云侠 楼主 2020-7-17 09:30:06
7#
更新了图片
+1 0
andrew0756 云师 2020-7-17 09:37:30
8#
学习了,还能这么玩
+1 0
杨钊 云侠 2020-7-17 14:04:15
9#
先点赞回帖留名再看,板凳支持
+1 0
lakery 云粉 2020-7-17 15:08:35
10#
好贴,学习学习!
+1 0
wlsh2016 云侠 2020-7-20 16:02:16
11#
这个存储过程是建个哪个数据库的,是外部数据库,还是云表数据库
+1 0
1 2 下一页
需要登录后才可进行回复 登录

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

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

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