dataview.select
功能说明
描述
查询指定数据视图存放在数据库中的数据(支持图片/附件/手写签名的文件操作),支持部分mysql函数,请查看文档【支持的SQL函数】
函数原型
dataview.select(formAlias,fields,wheres="",type=0)
参数
名称 | 类型 | 描述 |
---|---|---|
formAlias | 字符型 | 数据视图的别名,可以在数据视图设计界面中获取(支持跨应用取数据,格式为:"appid@表别名") |
fields | 数组型 | 查询字段,为表单的字段的别名,可以在表单设计的字段属性中获取,支持表单字段和子表单字段同时查询(子表单字段只能属于同一个子表单),["*"] 表示查询所有字段。具体参考示例 |
wheres | 字符型 | 查询条件,默认为空 |
type | 整数型 | 默认为0 0.以列名关联的方式返回查询结果 1.以索引的方式返回查询结果 2.以列名关联的方式返回查询到的第一条记录 3.查询以索引的方式返回查询到的第一条记录 |
- wheres 数据格式:
- WHERE ($单行文本 like "%111%") AND ($多行文本 between "111" AND "222") GROUP BY $单行文本, $多行文本 ORDER BY $单行文本 DESC, $多行文本 ASC LIMIT 0, 20
返回值
类型 | 描述 |
---|---|
数组型 | 根据参数中的type类型返回不同的格式的数组 0.以列表的方式返回查询结果 1.以列表的方式返回查询结果 2.以字典的方式返回查询到的第一条记录 3.以列表的方式返回查询到的第一条记录,获取失败返回空数组 |
- 数据格式:
[ { "deleteTime":"", "createTime":"2019-01-05 15:05:07", "updateTime":"2019-01-11 11:00:38", "单行文本":"abc", "多行文本":"def", "图片":[ { "size":"85559", "uploadTime":"2019-03-26T17:48:28Z", "_id":"58f57658a48dae2e5f68952e", "name":"1.jpg", "mime":"image/jpeg", "uploader":"547a48c50eccde5ac8c0883b", "bucket":"pub-file", "qnKey":"Fko6hnrcvUS7n4b6QKszWRDKMsVC" } ], "附件":[ { "size":"79273", "uploadTime":"2019-03-26T17:59:15Z", "_id":"53b506717f9b4cd9d5e89e85", "name":"1.txt", "mime":"text/plain", "uploader":"547a48c50eccde5ac8c0883b", "bucket":"pub-file", "qnKey":"FpTHlLKcZrGQuRFedYoSwnKWs6V4" } ], "手写签名":[ { "_id":"5adf0f8e7f96c03842ae3f72", "bucket":"pub-file", "uploader":"", "uploadTime":"2019-05-20T17:25:43Z", "size":"98328", "qnKey":"FhdH1pyNASeDYC3JwiJQB77vmJr2", "name":"bbysignature_1558512038935.png", "mime":"image/png" } ], "creator":{ "nickname":"bobo", "id":"547a48c50eccde5ac8c0883b" }, "deleter":"", "id":"5e5057a78d478a699e99a7d8" }, { "deleteTime":"", "createTime":"2019-01-11 11:00:49", "updateTime":"2019-01-11 11:00:49", "单行文本":"abc2", "多行文本":"def2", "图片":[], "附件":[], "creator":{ "nickname":"bobo", "id":"547a48c50eccde5ac8c0883b" }, "deleter":"", "id":"58d0e3930170170b8953877e" } ]
名称 描述 id 数据id,在不同的范围内代表不同含义(例如在 creator 中表示数据创建者的userid) creator 数据的创建者 createTime 数据的创建时间 deleter 数据的删除者 deleteTime 数据的删除时间 nickname 数据的创建者对应的昵称 size 文件大小,单位:字节 name 文件名称 mime 文件类型 uploader 上传人id(手写签名里为空) uploadTime 上传时间 bucket 文件服务器的空间名称 qnKey 文件在服务器空间上的标识符
子表单字段和外层字段同时查询时的结果集:
- 注意当子表单数据条数 > 外层数据条数时将自动填充数据补齐空白部分,如下图所示:
原始数据为: |单行文本|单行文本_子表单| |-|-| |11|33| | |44| 查询结果为: |单行文本|单行文本_子表单| |-|-| |11|33| |11|44|
备注
可能出现的错误信息,执行 getlasterror 函数获取具体详细信息:
- 错误编码=getlasterror()
- 错误信息=getlasterror(1)
错误编码 | 错误信息 |
---|---|
1407 | api执行频率超出限制 |
1400 | 参数类型不正确 |
1300 | 参数不是数组类型 |
1305 | 参数不是关联数组 |
1313 | 参数非法 |
1506 | 连接数据库失败 |
1502 | 取表单字段失败 |
1560 | 表单中没有可操作的数据,请检查参数是否正确 |
1302 | 赋值失败 |
1513 | 条件字段不为关联数组 |
1508 | 非法字段别名 |
1504 | 不存在的字段 |
1582 | 非法的表达式 |
1505 | 不支持的函数 |
1587 | 查询超出范围 |
1504 | 不存在的字段 |
1533 | 数据库执行失败 |
1591 | 操作非法 |
1503 | 字段不是关联数组类型 |
支持的sql函数(只支持大写) | COUNT、MAX、MIN、AVG、SUM、NOW |
支持的sql比较关键字(只支持大写) | AND、OR、ORDER、GROUP(group by)、LIMIT |
其他:
- 所有表单查询api的结果集行数最多返回500条数据
- 所有表单api调用频率限制为1000次/分钟
示例
def test():
# name(字段别名), val(字段对应的值), exp(条件表达式) 为条件专有名称
# 普通字段查询
# 查询全部数据使用 ["*"]
fields=["$单行文本"]
res=dataview.select("测试表单",fields)
# 普通字段和子表单字段同时查询
where="$单行文本='11' and $单行文本_子表单='22'"
res=dataview.select("测试表单",["$单行文本","$单行文本_子表单"],where)
print(res)
# select `单行文本` from `测试表单` LIMIT 0,500
fields=["$单行文本"]
where="limit 0,500"
res=dataview.select("测试表单",fields,where)
print(res)
# select MAX(`单行文本`) from `测试表单`
# #开头表示sql函数, 支持的函数名称详情见备注
fields=["#MAX($单行文本)"]
res=dataview.select("测试表单",fields)
print(res)
# select `单行文本` from `测试表单` where 单行文本 IN (1,2,3) AND 单行文本1 NOT IN (4,5,6) ORDER BY 单行文本 DESC
fields=["$单行文本"]
where={"$单行文本 IN (1,2,3) AND $单行文本1 NOT IN (4,5,6) ORDER BY $单行文本 DESC"}
res=dataview.select("测试表单",fields,where)
print(res)
# 非复合字段查空值(单行文本,多行文本,数字,日期时间,单选按钮组,下拉框,流水号,成员单选,部门单选)
fields=["$单行文本"]
where="$单行文本 is None or $单行文本=''"
res=dataview.select("测试表单",fields,where)
print(res)
# 复合字段查空值(复选框组,下拉复选框,地址,定位,图片,附件,手写签名,成员多选,部门多选)
fields=["$复选框组"]
where="$复选框组 is None or $复选框组=[]"
res=dataview.select("测试表单",fields,where)
print(res)
演示示例
- 暂无
安装包下载
- 暂无
相关视频
- 暂无