form.updates
功能说明
描述
批量更新数据库表的数据。(支持图片/附件/手写签名的文件操作)
支持部分mysql函数,请查看文档【支持的SQL函数】
函数原型
form.updates(formAlias,datas,bFail=True)
参数
名称 | 类型 | 描述 |
---|---|---|
formAlias | 字符型 | 表单别名,可以在表单设计界面中的“表单属性”中获取(支持跨应用操作数据,格式为:"appid@表别名") |
datas | 数组:列表型 | 需要更新/修改的多行数据(最多500条数据,注意这里指的是更新条件,不是对数据库的影响结果) |
bFail | 逻辑型 | 遇到错误是否中断执行,默认为True表示中断执行且回滚事务,False表示继续往下执行 |
返回值
类型 | 描述 |
---|---|
整型 | 更新成功返回更新的数据行数,更新失败返回-1(任意一条数据失败时根据bFail决定是否回滚事务,bFail=False时继续执行后面的操作,但是记录错误信息) 条件不匹配导致更新无效时返回0 |
备注
可能出现的错误信息,执行 getlasterror 函数获取具体详细信息:
- 错误编码=getlasterror()
- 错误信息=getlasterror(1)
错误编码 | 错误信息 |
---|---|
1407 | api执行频率超出限制 |
1400 | 参数类型不正确 |
1300 | 参数不是数组类型 |
1305 | 参数不是关联数组 |
1506 | 连接数据库失败 |
1502 | 取表单字段失败 |
1514 | 系统字段,不能进行操作 |
1594 | 不允许操作回收站的表单 |
1508 | 非法字段别名 |
1504 | 不存在的字段 |
1582 | 非法的表达式 |
1505 | 不支持的函数 |
1560 | 表单中没有可操作的数据,请检查参数是否正确 |
1587 | 查询超出范围 |
1533 | 数据库执行失败 |
1539 | 非法的属性值 |
1586 | 文件不存在 |
datas | 更新数据 |
wheres | 表单查询条件 |
其他:
- 所有表单api调用频率限制为1000次/分钟。
字段的数值更新支持动态表达式
表达式类型 | 支持的运算符号 | 算式 | 示例 |
---|---|---|---|
单值表达式 | ! | !数字1 | {"exp":"!$数字1"} |
四则运算表达式 | + - * / % | 数字1 + 数字2 | {"exp":"$数字1+$数字2"} |
数字1 + ABS(数字2) * 3 | {"exp":"$数字1+#ABS($数字2)*3"} |
- exp:运算表达式($表示字段,#表示函数)
示例
def test():
#普通数据更新
datas={}
datas["$文本"]='123'
datas["$文本1"]="aabb"
wheres1="$单行文本='11'"
wheres2="$单行文本='22'"
alls=[{"datas":datas,"wheres":wheres1},{"datas":datas,"wheres":wheres2}] # 组合成多行数据
ret=form.updates("测试表单",alls)
print(ret)
# 字段的动态表达式示例,例如:对数字字段自增+1
datas={}
datas["$数字"]={"exp":"$数字+1"}
alls=[{"datas":datas,"wheres":wheres1},{"datas":datas,"wheres":wheres2}]
ret=form.updates("测试表单", alls)
print(ret)
# 图片/附件/手写签名的文件操作(需要先在前端手动插入1张图片)
# 图片为数组格式,可以有多个,例如: [{"_id" :"5adf0f8e7f96c03842ae3f72","bucket" :"form-file","uploader" :"5b68110f7cf2885b5e19e66a","uploadTime" :"2019-05-20T17:25:43Z","size" :"98328","qnKey" :"FhdH1pyNASeDYC3JwiJQB77vmJr2","name" :"6.jpg","mime" :"image/jpeg"}]
arr=form.select("测试表单",["$图片"])
datas={}
datas["$图片"]=arr[0]["图片"]
alls=[{"datas":datas,"wheres":wheres1},{"datas":datas,"wheres":wheres2}]
ret=form.updates("测试表单", alls)
print(ret)
演示示例
- 暂无
安装包下载
- 暂无
相关视频
- 暂无