Direct Discovery system variables
You can set a caching limit to the Direct Discovery query results for charts. Once this time limit is reached, QlikView clears the cache when new Direct Discovery queries are made. QlikView queries the source data for the selections and creates the cache again for the designated time limit. The result for each combination of selections is cached independently. That is, the cache is refreshed for each selection independently, so one selection refreshes the cache only for the fields selected, and a second selection refreshes cache for its relevant fields. If the second selection includes fields that were refreshed in the first selection, they are not updated in cache again if the caching limit has not been reached.
The Direct Discovery cache does not apply to Table charts. Table selections query the data source every time.
The limit value must be set in seconds. The default cache limit is 1800 seconds (30 minutes).
The value used for DirectCacheSeconds is the value set at the time the DIRECT QUERY statement is executed. The value cannot be changed at runtime.
You can do asynchronous, parallel calls to the database by using the connection pooling capability. The load script syntax to set up the pooling capability is as follows:
The numeric setting specifies the maximum number of database connections the Direct Discovery code should use while updating a sheet. The default setting is 1.
Direct Discovery can support the selection of extended Unicode data by using the
Setting this variable to 'true' will enable the use of the
When a DIMENSION field value is selected in a QlikView object, a query is generated for the source database. When the query requires grouping, Direct Discovery uses the DISTINCT keyword to select only unique values. Some databases, however, require the GROUP BY keyword. Set DirectDistinctSupport to
If DirectDistinctSupport is set to true, then DISTINCT is used. If it is not set, the default behavior is to use DISTINCT.
In high cardinality multi-table scenarios, it is possible to generate sub queries in the
Teradata query banding variables
Two variables are available, both are strings that are evaluated and sent to the database.
This string is sent when a connection to the database is created.
If OSuser() for example returns WA\sbt, this will be evaluated to SET QUERY_BAND = 'Who=WA\sbt;' FOR SESSION; , which is sent to the database when the connection is created.
This string is sent for each single query.
You can set the character used as the field delimiter in Direct Query statements for databases that require a character other than comma as the field delimiter. The specified character must be surrounded by single quotation marks in the SET statement.
You can specify a character to use to quote strings in a generated query. The default is a single quotation mark. The specified character must be surrounded by single quotation marks in the SET statement.
You can specify that non-
When DirectIdentifierQuoteStyle is set to
You can specify a character to control the quoting of identifiers in a generated query. This can be set to either one character (such as a double quotation mark) or two (such as a pair of square brackets). The default is a double quotation mark.
When Direct Discovery fields are used in a Table chart, a threshold is set to limit the number of rows displayed. The default threshold is 1000 records. The default threshold setting can be changed by setting the DirectTableBoxListThreshold variable in the load script. For example:
The threshold setting applies only to Table charts that contain Direct Discovery fields. Table charts that contain only in-memory fields are not limited by the DirectTableBoxListThreshold setting.
No fields are displayed in the Table chart until the selection has fewer records than the threshold limit.
Direct Discovery number interpretation variables
The decimal separator defined replaces the decimal symbol for currency in the
Default value is '.'
The symbol defined replaces the currency format in the
Default value is '#.0000'
The time format defined replaces the time format in the
The date format defined replaces the date format in the
The format defined replaces the date and time format in the
Set DirectTimestampFormat='M/D/YY hh:mm:ss[.fff]';