Direct Discovery 变量
Direct Discovery 系统变量
DirectCacheSeconds
您可以为 Direct Discovery 图表查询结果设置缓存限制。在达到此时间限制后,QlikView 会在执行新的 Direct Discovery 查询时清除缓存。QlikView 将查询选择项的源数据并将为指定的时间限制再次创建缓存。对于各选择项组合,将独立缓存其结果。即为每个选择项独立刷新缓存,对于一个选择项,仅对所选字段刷新缓存,对于另一个选择项,对其相关字段刷新缓存。如果第二个选择项包含在第一个选择项中刷新的字段,则在尚未达到缓存限制的情况下不会在缓存中再次更新这些字段。
Direct Discovery 缓存不适用于表格 图表。对于表格选择项,每次都会查询数据源。
限值设置必须使用秒为单位。默认缓存限制是 1800 秒(30 分)。
用于 DirectCacheSeconds 的值是在执行 DIRECT QUERY 语句时设置的值。在运行时不能更改此值。
Example:
SET DirectCacheSeconds=1800
DirectConnectionMax
您可使用连接池功能进行数据库异步、并行调用。设置连接池功能的加载脚本语法如下所示:
SET DirectConnectionMax=10
数字设置指定更新表格时 Direct Discovery 代码应使用的最大数据库连接数量。默认设置为 1。
备注: 此变量应谨慎使用。如果将其设置为大于 1 的数,会导致在连接到 Microsoft SQL Server 时出现问题。
DirectUnicodeStrings
Direct Discovery 可以通过使用一些数据库(尤其是 SQL Server )所要求的扩展字符串文字 (N’<扩展字符串>’) 的 SQL 标准格式来支持扩展 Unicode 数据的选择。带有脚本变量 DirectUnicodeStrings 的 Direct Discovery 允许使用这种语法。
将该变量设置为“真”将允许在字符串文字之前使用 ANSI 标宽字符标记“N” 。并非所有数据库都支持此标准。默认设置为“假”。
DirectDistinctSupport
如果在 QlikView 对象中选择 DIMENSION 字段值,则会为源数据库生成查询。当查询要求分组时,Direct Discovery 会使用 DISTINCT 关键字仅选择唯一的值。但是,某些数据库要求使用 GROUP BY 关键字。将 DirectDistinctSupport 设置为 'false' 会在唯一值的查询中生成 GROUP BY ,而非 DISTINCT 。
SET DirectDistinctSupport='false'
如果将 DirectDistinctSupport 设置为“真”,则使用 DISTINCT 。否则,默认行为是使用 DISTINCT 。
DirectEnableSubquery
在高基数多表格情形中,可能会在 SQL 查询中生成子查询,而不是生成很大的 IN 子句。这可以通过将 DirectEnableSubquery 设置为 'true' 来激活。默认值为 'false' 。
备注: 启用 DirectEnableSubquery ,无法加载不是处于 Direct Discovery 模式下的表格。
SET DirectEnableSubquery='true'
Teradata 查询分级变量
Teradata 查询分级是一个函数,可让企业应用程序与基础 Teradata 数据库一起协作,以便提供更好的会计、确定优先顺序和工作量管理。使用查询分级,可以围绕查询限制元数据,例如用户凭据。
两个变量都可用,都是发送到数据库的评估字符串。
SQLSessionPrefix
在创建数据库连接时,发送此字符串。
SET SQLSessionPrefix = 'SET QUERY_BAND = ' & Chr(39) & 'Who=' & OSuser() & ';' & Chr(39) & ' FOR SESSION;';
例如,如果 OSuser() 返回 WA\sbt ,将针对 SET QUERY_BAND = 'Who=WA\sbt;' FOR SESSION; 评估此结果,此字符串会在创建连接时发送到数据库。
SQLQueryPrefix
每一次查询都发送此字符串。
SET SQLSessionPrefix = 'SET QUERY_BAND = ' & Chr(39) & 'Who=' & OSuser() & ';' & Chr(39) & ' FOR TRANSACTION;';
Direct Discovery 字符变量
DirectFieldColumnDelimiter
您可以在 Direct Query 数据库语句中将使用的字符设置为字段分隔符,字段分隔符必须是非逗号字符。在 SET 语句中,必须对指定字符使用单引号。
SET DirectFieldColumnDelimiter= '|'
DirectStringQuoteChar
可以指定要在生成的查询中用于引用字符串的字符。默认值是单引号。在 SET 语句中,必须对指定字符使用单引号。
SET DirectStringQuoteChar= '"'
DirectIdentifierQuoteStyle
可以指定在生成的查询中使用的非 ANSI 引用的标识符。此时,唯一可用的非ANSI 引用是 GoogleBQ 。默认值为 ANSI 。可以使用大写、小写和混合大小写格式 (ANSI, ansi, Ansi) 。
SET DirectIdentifierQuoteStyle="GoogleBQ"
例如,在以下 SELECT 语句中使用 ANSI 引用:
SELECT [Quarter] FROM [qvTest].[sales] GROUP BY [Quarter]
当 DirectIdentifierQuoteStyle 设置为 "GoogleBQ" 时,SELECT 语句将使用如下引用:
SELECT [Quarter] FROM [qvTest.sales] GROUP BY [Quarter]
DirectIdentifierQuoteChar
可以指定要在生成的查询中控制标识符引用的字符。此字符可以设置为一个字符(例如双引号)或两个字符(例如方括号对)。默认值是双引号。
SET DirectIdentifierQuoteChar='YYYY-MM-DD'
DirectTableBoxListThreshold
在表格 图表中使用 Direct Discovery 字段时,可设置阈值来限制显示的行数。默认阈值为 1000 个记录。默认阈值设置可以更改,只需在加载脚本中设置 DirectTableBoxListThreshold 变量。例如:
SET DirectTableBoxListThreshold=5000
阈值设置仅适用于包含 Direct Discovery 字段的表格 图表。仅包含内存中字段的表格 图表不受 DirectTableBoxListThreshold 设置限制。
在选择项的记录少于阈值限制之前,不会在表格 图表中显示任何字段。
Direct Discovery 数字解释变量
DirectMoneyDecimalSep
定义的小数位分隔符会替代使用 Direct Discovery 加载数据生成的 SQL 语句中的货币小数位符号。此字符必须与 DirectMoneyFormat 中使用的字符一致。
默认值为 '.'
Example:
Set DirectMoneyDecimalSep='.';
DirectMoneyFormat
定义的符号会替代使用 Direct Discovery 加载数据生成的 SQL 语句中的货币格式。不应包含千分位分隔符的货币符号。
默认值为 '#.0000'
Example:
Set DirectMoneyFormat='#.0000';
DirectTimeFormat
定义的时间格式会替代使用 Direct Discovery 加载数据生成的 SQL 语句中的时间格式。
Example:
Set DirectTimeFormat='hh:mm:ss';
DirectDateFormat
定义的日期格式会替代使用 Direct Discovery 加载数据生成的 SQL 语句中的日期格式。
Example:
Set DirectDateFormat='MM/DD/YYYY';
DirectTimeStampFormat
定义的格式会替代使用 Direct Discovery 加载数据生成的 SQL 语句中的日期和时间格式。
Example:
Set DirectTimestampFormat='M/D/YY
hh:mm:ss[.fff]';