使用 Direct Discovery時的限制

支援的資料類型

Direct Discovery支援所有的資料類型,但某些情況下,特定的來源資料格式必須定義至QlikView。可在載入指令碼中使用「SET Direct...Format」語法來達成這個目的。下列範例示範如何定義作為 Direct Discovery來源之來源資料庫的日期格式︰

範例:  

SET DirectDateFormat='YYYY-MM-DD';

還有兩個指令碼變數可控制 Direct Discovery如何在產生的 SQL 陳述式中格式化貨幣類型的值︰

SET DirectMoneyFormat (default '#.0000')
SET DirectMoneyDecimalSep (default '.')

這兩個變數的語法與 MoneyFormatMoneyDecimalSep 的語法相同,但在使用方式上有兩個重要的差異︰

  • 這並非顯示格式,所以不該包含貨幣符號或千位分隔符號。
  • 預設值並非由地區設定所決定,而是以硬式編碼的方式寫入值中。(地區設定特定格式包括貨幣符號)。

透過使用針對延伸字元字串常值的 SQL標準格式 (N'<延伸字串>'),Direct Discovery 就可支援選取延伸 Unicode 資料;這是部分資料庫 (例如SQL Server) 的要求。Direct Discovery可透過指令碼變數DirectUnicodeStrings 來啟用這個語法。設定此變數為 "true",即可在字串常值前使用 "N"

安全性

使用 Direct Discovery時,應考慮下列安全性最佳做法︰

  • 使用與Direct Discovery功能之相同應用程式的所有使用者,都應該使用相同的連接。不支援驗證通過和按使用者認證的方式。
  • 區段存取僅受支援在伺服器模式中使用。
  • 可以在資料庫中執行含 NATIVE關鍵字運算式的自訂 SQL 陳述式,因此在載入指令碼中設定的資料庫連線必須使用對資料庫具備唯讀存取權的帳戶。
  • Direct Discovery沒有記錄功能,但可以使用 ODBC 追蹤功能。
  • 來自用戶端的要求有可能氾濫資料庫。
  • 可以從伺服器記錄檔取得詳細的錯誤訊息。

不支援 QlikView功能

因為 Direct Discovery的互動性和 SQL 語法特定的本質,不支援數個功能︰

  • 進階計算 (集分析、複雜運算式)
  • 計算維度
  • 對使用 Direct Discovery欄位的物件進行比較分析 (輪替狀態機)
  • 使用搜尋功能時,不支援 Direct DiscoveryMEASUREDETAIL 欄位
  • 來自存取 Direct Discovery表格之應用程式的二進位檔載入
  • 重複並減少
  • Direct Discovery表格上的合成鍵
  • 指令碼中的表格命名不會套用至 Direct Discovery表格
  • 在載入指令碼的 DIRECT QUERY關鍵字之後使用萬用字元 * (DIRECT QUERY *)
  • 不支援含 LONG資料類型資料行的 Oracle 資料庫表格。
  • 使用科學記號標記法的大整數,若超出範圍 [-9007199254740990, 9007199254740991],會造成進位錯誤和未定義的行為。