悉思SQL标签正式上线,模板中可直接书写只读查询语句并按循环标签的形式渲染结果,标准标签覆盖不到的复杂取数场景有了统一出口。SQL标签默认关闭,站点开启后才解析,未开启时标签整体输出空字符串,页面其余内容正常渲染。
SQL标签面向多表关联统计、自定义聚合与跨表取数三类需求,查询结果按行渲染,行内可输出列值与行序号。开关按站点隔离,配置项位于站点配置的其他分组,默认关闭,修改后清理配置缓存即生效。
| 配置项 | 默认值 | 说明 |
|---|---|---|
| 站点开关 | 关闭 | 按站点隔离,关闭时标签输出空字符串 |
| 显示行数上限 | 二百行 | 仅可收窄,不允许突破上限 |
| 时间列格式 | 日期时间格式 | 可被字段级格式覆盖 |
行数上限的收紧设计出于稳定性考虑:查询结果直接进入渲染流程,行数上限避免一次取数把大表内容全部载入内存,站点按页面实际需要收窄条数即可。
查询语句不需要也不允许手写站点标识,服务端会为每一张含站点标识的表自动追加当前站点条件,主表注入到筛选子句,JOIN从表注入到关联条件内以保持左连接语义。语句显式写了其他站点标识或包含其他站点编号的列表时,执行被拒绝并记入服务日志。
不含站点标识的全局共享表不参与注入,数据本就全站点共享。子查询无法自动定位注入位置,因此整体拒绝执行,需要在语句中显式写明站点条件;公共表表达式整体拒绝,避免通过别名伪装绕过隔离。同一模板用于多个站点时,各站点自动读取各自数据,无需为每个站点改写模板。
不熟悉语句写法时可用标签生成器内置的可视化构建器,按SQL子句顺序依次配置数据表、关联表、筛选条件、分组字段、聚合函数、分组筛选、输出字段、去重、排序与显示条数,语句实时生成并填入参数框。
生成语句时自动处理表限定:存在关联时主表自动加前缀、从表使用顺序别名,字段歧义问题在生成阶段消除。启用分组后若输出字段既未分组也非聚合,界面会提示调整,避免数据库严格模式报错。构建器面向所有模板作者开放,无需登录即可使用,敏感表不出现在可选清单中。
构建器的可选表与字段清单来自站点目录下的元数据文件,直接编辑即可更新,无需改代码或重新编译。数据库结构变更后可运行项目自带脚本重新生成清单,文件缺失或解析失败时自动回退内置清单,功能不中断。
元数据中的站点标识标记决定是否自动注入站点条件,手工增删表时需如实填写,否则可能出现跨站点数据串站。构建器不提供站点标识字段的选择入口,清单更新后清理缓存即生效。
评论
加载中...