版本注意事項


45.2 CLI/ODBC/JDBC 架構 PATCH1 和 PATCH2 設定值

CLI/ODBC/JDBC 驅動程式的架構可以由從屬站架構輔助程式、ODBC 驅動程式管理程式(若系統有安裝此程式)、編輯 db2cli.ini 檔來完成。 詳細資料,請參閱安裝與架構補充資料CLI Guide and Reference

您可以透過 db2cli.ini 檔,或者透過 SQLDriverConnect() 或 SQLBrowseConnect() CLI API, 指定 PATCH1 及 PATCH2 關鍵字的值,來修改 DB2 CLI/ODBC 驅動程式的預設行為。

您可以將使用者想要設定的所有關鍵字加在一起, 來指定 PATCH1 關鍵字。 例如,如果指定修補程式 1、2 及 8,則 PATCH1 的值將是 11。 下列是驅動程式上每一關鍵字值及其效果的說明:

 1 - 這使得驅動程式將搜尋 "count(exp)",並以 "count(distinct exp)"
     置換它。因為有些版本的 DB2 支援 "count(exp)" 語法,且該語法
     是由某些 ODBC 應用程式所建立的,所以需要這種效果。
     當伺服器不支援 "count(exp)" 語法時,Microsoft 應用程式需要它。
 2 - 部份 ODBC 應用程式會被設陷,當 SQLGetTypeInfo() 函數中對於 LITERAL_PREFIX
     或 LITERAL_SUFFIX 直欄傳回 SQL_NULL_DATA 時。這會強制驅動程式改而傳回一個
     空字串。Impromptu 2.0 會需要用到。
 4 - 這會強制驅動程式將輸入時間戳記資料視為日期資料,如果時間和時間戳記的小數
     部份是零。Microsoft Access 會需要用到。
 8 - 如果時間戳記的日期部份為 1899-12-30,這會強制驅動程式
     將輸入時間戳記資料視為時間資料。Microsoft Access 需要這種效果。
 16 - 不使用。
 
 32 - 這會強制驅動程式不傳回關於 SQL_LONGVARCHAR、SQL_LONGVARBINARY 及
      SQL_LONGVARGRAPHIC 直欄的資訊。在應用程式看來,就好像並不支援長欄位。
      Lotus 123 會需要用到。
 64 - 這會強制驅動程式以 NULL 值終止圖形輸出字串。
      雙位元組環境中的 Microsoft Access 需要這種效果。
 128 - 這會強制驅動程式讓 "SELECT Config, nValue FROM MSysConf" 查詢到伺服器去。
       目前驅動程式會傳回錯誤,相關 SQLSTATE 值是 S0002 (找不到表格)。如果使用者
       已在資料庫中建立了此架構表格且希望應用程式可以存取時會需要用到。
 256 - 這會強制驅動程式在 SQLStatistics() 呼叫中先傳回主要鍵直欄。目前,驅動程式
       會依照索引名稱傳回已排序的索引,那是標準的 ODBC 行為。
 512 - 這會強制驅動程式在 SQLGetFunctions() 中對 SQL_API_SQLTABLEPRIVILEGES
       及 SQL_API_SQLCOLUMNPRIVILEGES 兩者傳回 FALSE。
 1024 - 這會強制驅動程式在 SQLExecute() 或 SQLExecDirect() 中傳回 SQL_SUCCESS,
        而非 SQL_NO_DATA_FOUND,如果執行的 UPDATE 或 DELETE 陳述式沒有對任何橫列
        發生作用。Visual Basic 應用程式會需要用到。
 2048 - 不使用。
 
 4096 - 在自動 COMMIT 模式中時,於關閉游標後,這會強制驅動程式
        不發出 COMMIT。
 8192 - 這會強制驅動程式在呼叫儲存程序後傳回額外的結果集。這個結果集是一個單一
        橫列的結果集,由儲存程序的輸出值組成。可被 Powerbuild 應用程式來存取。
 32768 - 這會強制驅動程式使 Microsoft Query 應用程式能使用
         DB2 MVS 同義字。
 65536 - 這會強制驅動程式自行插入一個 "G" 到實際上為圖形文字的字元文字前面。
         這個修補程式在雙位元組環境中工作時一定要提供。
 131072 - 這會強制驅動程式將時間戳記直欄視為一個 CHAR(26) 直欄,在它是一個唯一
          索引的一部份時。Microsoft 應用程式會需要用到。
 262144 - 這會強制驅動程式使用 pseudo-catalog 表格 db2cli.procedures,而非
          SYSCAT.PROCEDURES 及 SYSCAT.PROCPARMS 表格。
 524288 - 這會強制驅動程式使用 SYSTEM_TABLE_SCHEMA,而非 TABLE_SCHEMA,
          在對 DB2/400 V3.x 系統作系統查詢時。這樣可提昇效能。
 1048576 - 這會強制驅動程式透過 SQLPutData() 將零長度的字串視為 SQL_NULL_DATA。

PATCH2 關鍵字不同於 PATCH1 關鍵字。 在這種情況中,將使用逗點分隔字元來指定多個修補程式。 例如,如果指定了修補程式 1、4 及 5,則 PATCH2 將具有值 "1,4,5"。 下列是驅動程式上每一關鍵字值及其效果的說明:

 1 - 這會強制驅動程式將 CALL 陳述式中的儲存程序名稱轉換為大寫字體。
 2 - 不使用。
 
 3 - 這會強制驅動程式將綱目呼叫的所有引數轉換為大寫字體。
 
 4 - 這會強制驅動程式對於綱目呼叫 (也就是 SQLColumns()、SQLProcedureColumns() 等等)
     傳回類似版本 2.1.2 的結果集,而非類似版本 5 的結果集。
 5 - 這會強制驅動程式不要最佳化輸入 VARCHAR 直欄的處理,指向資料的指標和指向長度的
     指標在記憶體中是連續的。
 6 - 這會強制驅動程式傳回不支援可捲動游標的訊息。Visual Basic 程式會需要用到,如果
     DB2 從屬站是版本 5,且伺服器是 DB2 UDB 版本 5。
 7 - 這會強制驅動程式將所有 GRAPHIC 直欄資料類型對映到 CHAR
     直欄資料類型。在雙位元組環境中需要這種效果。
 8 - 這會強制驅動程式忽略綱目呼叫中的目錄搜尋引數。
 9 - 游標提早關閉時不要 COMMIT
 10 - 不使用
 11 - 報告支援目錄名稱, (VB 儲存程序)
 12 - 從綱目呼叫引數除去雙引號, (Visual Interdev)
 13 - 請勿將 db2cli.ini 的關鍵字添加到輸出連接字串
 14 - 忽略 SQLProcedures() 及 SQLProcedureColumns() 上的綱目名稱
 15 - 使用句點代表字元輸出中的小數點符號
 16 - 強迫傳回每一開啟的說明資訊
 17 - 請勿在說明上傳回直欄名稱
 18 - 嘗試以參數記號取代文字
 19 - 目前,DB2 MVS V4.1 不支援 ODBC 語法,因為它容許在外部結合子句中的
      ON 子句可有括弧。
      開啟這個 PATCH2 會導致 IBM DB2 ODBC 驅動程式在外部結合子句在 ODBC
      ESC 序列中時將連字號除去。這個 PATCH2 只有在不利於 DB2 MVS 4.1 時才使用。 
 20 - 目前,MVS 上的 DB2 不支援參數記號為兩個運算元 (expression ? BETWEEN ?) 的
      BETWEEN 述詞。開啟這個修補程式會導致 IBM ODBC 驅動程式將述詞覆寫為
      (expression >= ? and expression <= ?)。 
 21 - 將儲存程序的所有僅 OUTPUT 參數設定為 SQL_NULL_DATA
 22 - 這個 PATCH2 會導致 IBM ODBC 驅動程式報告不支援外部結合 (OUTER Join)。
      這適用於在使用外部結合時陳述式時會產生 SELECT DISTINCT col1 或
      ORDER BY col1 的應用程式,其中 col1 的長度大於 254 個字元,且造成
      DB2 UDB 傳回錯誤 (因為 DB2 UDB 在此用法上不支援大於 254 個位元組的直欄
 23 - 請勿最佳化透過 cbColDef=0 結合的參數之輸入 
 24 - 存取對映時間的實例為字元
 25 - 存取小數直欄的實例 - 除去字元陳述尾端的零
 26 - 不將 SQL 程式 464 傳回給應用程式 - 表示已傳回結果集
 27 - 迫使 SQLTables 使用 TABLETYPE 關鍵字值,即使應用程式指定了一個有效值
 28 - 說明實際的直欄為雙倍直欄
 29 - 小數直欄的 ADO 實例 - 除去 x 值的前導零,其中 x 為 1 > x > -1(某些 MDAC 版本需要此效果)
 30 - 快取最佳化時,停止使用儲存程序
 31 - 回報 SQLStatistics 呼叫別名的統計值
 32 - 置換 SQL 程式 -727 原因碼 4 處理程序
 33 - 在轉換成字元時,傳回時間戳記的 ISO 版本
      (相對於 ODBC 版本)
 34 - 以 CHAR 名稱來回報 CHAR FOR BIT DATA 直欄
 35 - SQL_DESC_BASE_TABLE_NAMER 被要求下回報一個無效的表格名稱 - ADO 唯讀最佳化
 36 - 保留
 37 - 保留


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]