页面树结构
转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

版本 1 下一个 »

现象

在制作电子表格,有时候需要在单元格绑定参数,如果是下拉框、日期参数等都可以正常显示,但若是要平铺面板参数控件,会发现会多一个空值选项,为什么?实际上数据并没有这个选项

 

 

并没有客户预期的如下的效果:

 

现象说明

首先,上面的现象是正常的。下面我们说明一下:

如果要在查询的血统分析中找到查询使用的表,那么必须满足一个条件:表的字段或者表,在查询中必须是如下这种“对象”的形式

也就是说字段或者表,是从左侧资源树拖到查询中,并且不会自动变成文字形式的才行。

--------------------------------------------------------------------------------------------------------------------------------

所以针对系统中的3类查询,能否在血统分析中找到表。总结如下:

  • 可视化查询

    可视化查询由于都是从左侧拖拽的字段,所以血统分析中一定能找到表。除非存在以下情况:products表的所有字段和表名都是文字形式的,所以在血统分析中是看不到products这个表的

  • sql查询

    sql查询有两种情况,当字段或表在查询中满足我们条件时,可以在血统分析中找到表



    当表或者字段在查询中,都是手动输入文字的,这种是没办法在血统分析中找到表的

 

  • 原生sql查询
    由于原生sql查询中,哪怕字段或者表是从左侧资源树中拖过来的,也会自动变成文字形式。所以原生sql查询无论如何,也不可能在血统分析中找到相应的表


    ----------------------------------------------------------------------------------------------------------------------------------------------------

原理解释

其实我们可以尝试将鼠标移动到查询中的那些“对象”上面

可以看到,这些对象,实际上系统是可以从这些对象上面获取到它对应的表的信息的,所以可以在血统分析中显示出来。

 

而原生sql查询意味着“原生”,送到数据库中的sql就是客户写在查询中的,在系统中不能添加任何的处理。所以即使是从左侧拖过去的表和字段,也会变成文字的形式(参数、用户属性、函数除外)。

 

------------------------------------------------------------------------------------------------------

那么,原生sql,或者自己手写的sql查询,有没有其他方法能够在血统分析中找到表呢?

这个其实很难做到。如果要找到sql中所使用的表,那么必须把这些查询的sql取出来,然后对其进行解析,找到里面用到了什么表,这个本身有难度。而且除了表名以外,还会有不同的schema,另外不同数据库的语法还不完全一样,因此实现的可能性比较小。

  • 无标签