【分享】云表调用sqlserver 的存储过程
本帖最后由 bruce 于 2020-7-17 09:44 编辑说一个使用场景。很多时候我们需要调用外部数据源(数据库),来完成我们取数。
目前云表的,外部数据源 只支持 数据表和视图,不支持存储过程。
我们需要取数一些复查的查询数据时,只能先建立一个视图。
调用视图时,有一个问题,视图数据量非常大的时候,接口取数非常慢,会导致云表提示超时。其实我们需要的数据只有一点点,而视图又不支持参数传递。除了优化视图sql外还有什么办法吗?
答案:直接调用存储过程,传递参数过去,直接取出我们需要的数据。
如何调用呢?我的思路如下。
① 在云表中建立两个个辅助模板。 第一个模板为,《触发存储过程》模板,建立一个【 单据编号】 字段,设置好权限。就可以了。 设计思路入下图,下图 因为我需要传递的参数较多,设计的字段也比较多。
第二个模板为,《临时数据》模板 。 数据表,建立为主表。字段设置:一个单据编号字段,和需要返回的其他字段 ,保存模板。
建立数据接口 { 查询数据(单据编号,其他参数1,他参数2,...) }
注意:图仅供参考,各位按照自己 的实际需求设计模板字段。
② 在云表的数据库中建立好存储过程(sql),设定好参数变量(包含单据编号)。编写代码规则如下,当执行存储过程时,将查询结果的数 据插入到 《临时数据》模板中对应的字段。
③在数据库中找到这个《触发存储过程》模板的数据表,建立 insert 触发器,执行存储过程。
数据库这里的操作就完成了。
④在需要取数的模板 建立填表公式,
1 添加 工具栏 按钮 【取数】;
2 添加填表公式 “新建表单” 模板选择《临时表》;
3 添加赋值公式。 数据来源1 选择模板数据源接口, 找到《临时数据模板》 中的 { 查询数据(单据编号,其他参数1,他参数2,...) } 这个接口,绑定好参数, 然后进行对应的赋值操作。
感谢您的分享,如果能加一些图片来描述就更好啦 好的哦:handshake 看起来,很高级的样子,哈哈。赞一个先。。 可否截图实际案例说明一下,谢谢。 更新了图片
学习了,还能这么玩:lol 先点赞回帖留名再看,板凳支持 好贴,学习学习! 这个存储过程是建个哪个数据库的,是外部数据库,还是云表数据库
页:
[1]
2