form.handleselectdatas
功能说明
描述
通过句柄的方式,查询多个表单存放在数据库中的数据。(支持图片/附件/手写签名的文件操作)
支持部分mysql函数,请查看文档【支持的SQL函数】
函数原型
form.handleselectdatas(hd,fields,wheres=None)
复制
参数
名称 | 类型 | 描述 |
---|---|---|
hd | 整型 | 通过 form.open() 得到的句柄 |
fields | 数组:列表型 | 查询字段,为表单的字段的别名(不支持子表单和子表单里的字段字段),可以在表单设计的字段属性中获取,字段格式为:表别名.字段名(支持跨应用取数据,格式为:"appid@表别名.字段名")。具体参考示例 |
wheres | 数组:字典型 | 查询条件,条件为数组格式,默认为空具体格式请点击 查询条件和排序规则 |
- wheres 数据格式:
{
"AND":[
{
"name":"302@table1.单行文本",
"valtype":"value",
"val":"111",
"exp":"like"
},
{
"name":"302@table2.单行文本",
"valtype":"field",
"val":[
"302@table1.单行文本",
"302@table1.单行文本"
],
"exp":"between"
}
],
"ORDER":[
{
"name":"302@table1.单行文本",
"mode":"desc"
},
{
"name":"302@table2.多行文本",
"mode":"asc"
}
],
"GROUP":[
"302@table1.单行文本"
],
"LIMIT":[
0,
20
]
}
复制
名称 | 描述 |
---|---|
AND | 指定where元素的连接方式(OR的格式和AND相同,具体格式请点击 |
ORDER | 指定结果集的排序方式 |
GROUP | 指定结果集的过滤字段 |
LIMIT | 指定结果集的过滤行数 |
name | 字段别名,格式为:表别名.字段名,如果是跨表则加前缀:appid@ |
val | 字段对应的值,可以为单个或多个值,由 valtype 指定类型 |
valtype | 指定val的类型,"value" 表示为值类型,"field" 表示为字段类型 |
exp | 连接字段 name 和 val 的表达式 |
mode | 指定排序规则,"asc" 表示顺序排列,"desc" 表示倒序排列 |
返回值
类型 | 描述 |
---|---|
数组:列表型 | 以数组的方式返回查询结果,获取失败则返回空数组 |
- 数据格式:
[
{
"302@table1.单行文本":"table1_111",
"302@table1.多行文本":"table1_222"
"302@table2.单行文本":"table2_111",
"302@table2.多行文本":"table2_222",
"302@table2.图片":[
{
"size":"85559",
"uploadTime":"2019-03-26T17:48:28Z",
"_id":"58f57658a48dae2e5f68952e",
"name":"1.jpg",
"mime":"image/jpeg",
"uploader":"547a48c50eccde5ac8c0883b",
"bucket":"pub-file",
"qnKey":"Fko6hnrcvUS7n4b6QKszWRDKMsVC"
}
],
"302@table2.附件":[
{
"size":"79273",
"uploadTime":"2019-03-26T17:59:15Z",
"_id":"53b506717f9b4cd9d5e89e85",
"name":"1.txt",
"mime":"text/plain",
"uploader":"547a48c50eccde5ac8c0883b",
"bucket":"pub-file",
"qnKey":"FpTHlLKcZrGQuRFedYoSwnKWs6V4"
}
],
"302@table2.手写签名":[
{
"_id":"5adf0f8e7f96c03842ae3f72",
"bucket":"pub-file",
"uploader":"",
"uploadTime":"2019-05-20T17:25:43Z",
"size":"98328",
"qnKey":"FhdH1pyNASeDYC3JwiJQB77vmJr2",
"name":"bbysignature_1558512038935.png",
"mime":"image/png"
}
]
},
{
"302@table1.单行文本":"table1_333",
"302@table1.多行文本":"table1_444"
"302@table2.单行文本":"table2_111",
"302@table2.多行文本":"table2_222",
"302@table2.图片":[],
"302@table2.附件":[],
}
]
复制
名称 | 描述 |
---|
结果集的键名以参数fields的元素格式原样返回 size|文件大小,单位:字节 name|文件名称 mime|文件类型 uploader|上传人id(手写签名里为空) uploadTime|上传时间 bucket|文件服务器的空间名称 qnKey|文件在服务器空间上的标识符
备注
可能出现的错误信息,执行 getlasterror 函数获取具体详细信息:
- 错误编码=getlasterror()
- 错误信息=getlasterror(1)
错误编码 | 错误信息 |
---|---|
1407 | api执行频率超出限制 |
1400 | 参数类型不正确 |
1409 | 表单数据库的操作句柄不存在 |
1300 | 参数不是数组类型 |
1305 | 参数不是关联数组 |
1313 | 参数非法 |
1506 | 连接数据库失败 |
1502 | 取表单字段失败 |
1594 | 不允许操作回收站的表单 |
1560 | 表单中没有可操作的数据,请检查参数是否正确 |
1302 | 赋值失败 |
1513 | 条件字段不为关联数组 |
1508 | 非法字段别名 |
1504 | 不存在的字段 |
1582 | 非法的表达式 |
1505 | 不支持的函数 |
1587 | 查询超出范围 |
1504 | 不存在的字段 |
1585 | 表单别名非法 |
支持的sql函数(只支持大写) | COUNT、MAX、MIN、AVG、SUM、NOW |
支持的sql比较关键字(只支持大写) | AND、OR、ORDER、GROUP(group by)、LIMIT |
其他:
- 所有表单查询api的结果集行数最多返回500条数据。
- 所有表单api调用频率限制为1000次/分钟。
示例
def test():
# 联表查询
fields=["table1.单行文本","table1.多行文本","table2.单行文本","table2.多行文本","table2.图片","table2.附件"]
_and=[{"name":"table1.单行文本","val":"111","valtype":"value","exp":"like"},{"name":"table2.单行文本","val":{"table1.单行文本","table1.单行文本"},"valtype":"field","exp":"between"}]
_order=[{"name":"table1.单行文本","mode":"desc"},{"name":"table2.多行文本","mode":"asc"}]
_group=["table1.单行文本"]
_limit=[0,20]
wheres={"AND":_and,"GROUP":_group,"ORDER":_order,"LIMIT":_limit}
hd=form.open()
ret=form.handleselectdatas(hd,fields,wheres)
print(ret)
# 联表查询-跨应用表单
fields=["302@table1.单行文本","302@table1.多行文本","302@table2.单行文本","302@table2.多行文本","302@table2.图片","302@table2.附件"]
_and=[{"name":"302@table1.单行文本","val":"111","valtype":"value","exp":"like"},{"name":"302@table2.单行文本","val":{"302@table1.单行文本","302@table1.单行文本"},"valtype":"field","exp":"between"}]
_order=[{"name":"302@table1.单行文本","mode":"desc"},{"name":"302@table2.多行文本","mode":"asc"}]
_group=["302@table1.单行文本"]
_limit=[0,20]
wheres={"AND":_and,"GROUP":_group,"ORDER":_order,"LIMIT":_limit}
ret=form.handleselectdatas(hd,fields,wheres)
form.close(hd)
print(ret)
复制
演示示例
- 暂无
安装包下载
- 暂无
相关视频
- 暂无
目录