會將產生錯誤的 DB2 CLI 函數 (API) 名稱添加到使用 SQLGetDiagRec() 或 SQLError() 所擷取的錯誤訊息中。 函數名稱會用大括弧 { } 括起來。
例如,
[IBM][CLI Driver]" CLIxxxx: < text > SQLSTATE=XXXXX {SQLGetData}"
這個關鍵字僅對偵錯有用。
此選項可讓您啟用或停用此功能,以非同步方式執行查詢。 此選項只對撰寫來使用此特性的應用程式有益。 在啟用時,只有當您的應用程式未正確運作時,才停用它。 它是放在 db2cli.ini 檔案的資料來源特定區段中。
註: | CLI/ODBC 驅動程式會使用與前版 DB2 (不支援非同步 ODBC) 搭配處理的方式運作。 |
此選項可讓您指定是否要將 ODBC 二進位資料類型 (SQL_BINARY、SQL_VARBINARY、SQL_LONGVARBINARY 及 SQL_BLOB) 報告為二進位類型資料。 定義含有 FOR BIT DATA 屬性的 CHAR、VARCHAR 及 LONG VARCHAR 直欄, IBM DBMS 就可支援含有二進位資料類型的直欄。 透過 BLOB 資料類型,DB2 Universal Database 也支援二進位資料 (在這樣情況下,會將它對映到 CLOB 資料類型中)。
如果使用者使用的是將 (LONG) (VAR)CHAR 資料擷取到 SQL_C_CHAR 緩衝區的 DB2 版本 1, 則他們可能也需要設定此選項。 在 DB2 版次 1 中,資料被移至未變更的 SQL_C_CHAR 緩衝區中; 而由 DB2 版本 2 開始,資料轉換為每十六進位半位元組 (each hexadecimal nibble) 的 ASCII 表示法。
如果您確定所有直欄均定義為 FOR BIT DATA,或 BLOB 僅含有字元資料, 而且應用程式無法顯示二進位資料直欄,才設定 BITDATA = 0。
如果值不是在 3 和 30 間的整數,則會使用預設值而不會產生錯誤或警告訊息。
此關鍵字會用以增加 CLI/ODBC 應用程式中 SQL 陳述式的區段數。 如果使用了此關鍵字,則管理者應明確地將 必要的 CLI 連結檔案與 CLIPKG 連結檔案相連結。 同時,必須以相同的 CLIPKG 值更新伺服器 (在 UNIX 或 Intel 平台 上的 DB2 UDB V6.1 或更新的版本) 的 db2cli.ini 檔案。
此設定僅適用於大型套件 (含有 364 個區段)。 小型資料包 (含有 64 個區段) 數目為 3,且不能變更。
建議您只要將區段數目增加到執行應用程式為套裝軟體時,會在資料庫上所佔用的空間。
對於透過 DB2 Connect 連接至主電腦 DBMS 的 ODBC 應用程式,DB2 ODBC 型錄的設計主要是針對其中的表格列示,改善其綱目呼叫的效能。
在主電腦 DBMS 上建立及維護的 DB2 ODBC 型錄,包含橫列來代表實際 DB2 目錄中定義的物件, 但這些列僅包括支援 ODBC 作業所必需的直欄。DB2 ODBC 型錄中的表格是預先結合及特別編製索引的, 所以支援 ODBC 應用程式的快速型錄存取。
系統管理者可以建立多重 DB2 ODBC 型錄檢視畫面,每一個檢視畫面僅包含特定使用者群組所需的橫列。 然後,每一個一般使用者可以選取想要使用的 DB2 ODBC 檢視畫面 (設定此關鍵字)。
對 ODBC 應用程式而言,使用 CLISCHEMA 設定是完全透通的;您可以對任何 ODBC 應用程式使用此選項。
雖然此關鍵字與 SYSSCHEMA 關鍵字有些類似效果,但仍應該儘可能使用 CLISCHEMA。
CLISCHEMA 增進資料存取效率:SYSSCHEMA 所用的使用者定義表格是 DB2 型錄表格的鏡映影像, ODBC 驅動程式仍必須結合多重表格的橫列,才能產生 ODBC 使用者所需的資訊。使用 CLISCHEMA 亦可減少型錄表格的競爭。
用來指定您要連接的 DB2 Extended Enterprise Edition 資料庫分割區伺服器的目標邏輯節點。 此關鍵字 (或屬性設定) 置換環境變數 DB2NODE 的值。 可以設定為:
如果未設定此變數, 則目標邏輯節點會預設為使用機器上的埠 0 來定義的邏輯節點
此選項可讓您指定預設的連接類型。
此關鍵字可定義路徑,而此路徑可用來分辨動態 SQL 陳述式中所用的函數參照及資料類型參照。 它含有一個或以上之綱目名稱的列示,其中綱目名稱是用英文雙引號括起來,且用分號隔開。
預設值是 "SYSIBM","SYSFUN",X,其中 X 是用雙引號隔開之 USER 特別暫存區的值。 並不需指定綱目 SYSIBM。 如果函數路徑中沒有此項目,則會將它假定為第一個綱目。
在分辨可能定義在綱目名稱而非目前使用者之綱目中的不完整函數參照時,此關鍵字會被當成此處理的一部份。 綱目名稱的次序可決定函數名稱的分辨次序。 函數解析的相關資訊,請參閱 SQL Reference
此選項會在每次連接資料庫後,發出指令 "SET CURRENT PACKAGESET schema"。 預設值是不會添加此子句。
此陳述式會將用來選取資料包的綱目名稱 (集成識別字) 設成用於後續的 SQL 陳述式。
CLI/ODBC 應用程式會發出動態 SQL 陳述式。 您可使用此選項來控制執行這些陳述式的專用權:
CLI/ODBC 應用程式中的 SQL 陳述式現在已可在所指定的綱目中執行, 並使用那裡所定義的專用權。
請參照 SQL Reference, 以取得 SET CURRENT PACKAGESET 指令的相關資訊。
關於「摘要表」及 SET CURRENT REFRESH AGE 陳述式的資訊,請參閱 SQL Reference。
此關鍵字可以設定成下列其中一個值:
成功連接時,若設定此選項,則 SET CURRENT SCHEMA 陳述式傳送至 DBMS。 這容許一般使用者或應用程式在命名 SQL 物件時,不必以綱目名稱來限定它。
關於 SET CURRENT SCHEMA 陳述式的詳細資訊,請參閱SQL Reference.。
在成功的連接上,若設置此選項,則會將 SET CURRENT SQLID 陳述式傳送給 DBMS。 這樣可讓一般使用者及應用程式來命名 SQL 物件,而不必依綱目名稱來限定它們。
此選項控制在異動完成時對於開啟游標所產生的影響。
註: | roll back 異動時,通常會損壞游標。 |
使用 SQL_CURSOR_COMMIT_BEHAVIOR 或 SQL_CURSOR_ROLLBACK_BEHAVIOR 呼叫時, 此選項會影響 SQLGetInfo() 傳回的結果。 如果與不支援保留游標的 DB2 for VSE & VM 連接,則會忽略 CURSORHOLD 的值。
可使用此選項來調整效能。 如果確定您的應用程式不會發生下列動作,就可將它設成不保留游標 (0):
在異動結束後,不需要再維護資源時,DBMS 會運作地更有效率。
在使用「檔案 DSN」時,您必須使用此選項以指定在伺服器上要連接的資料庫。 此值與從屬站上所指定的任何資料庫別名沒有任何關係,它必須在 伺服器本身上,設定為資料庫名稱。
只有在 PROTOCOL 選項設定為 TCPIP,才需考慮使用此設定。
這個選項是用來指出 DB2 CLI 驅動程式要使用哪一個版本的 DB2 Connect 或 DB2 DDCS 閘道。 然後 CLI 驅動程式可以使用這項資訊,來將與資源來源的互動最大化 (例如,支援傳回多個結果設定的儲存程序)。
5 = 指示使用版本 5 DB2 Connect 閘道 (預設值)。
2 = 指示使用版本 2 DB2 DDCS 閘道。
此選項僅適用於 DB2 版本 5.2 或更新版本的伺服器。 如果指定的值是 0 (預設值) 以外的值,則 DB2 CLI 會在連接成功後發出下列 SQL 陳述式:
SET CURRENT DEGREE 值
此選項可指定執行 SQL 陳述式的平行化程度。 如果您指定 ANY,則資料庫管理程式會決定平行化程度。
相關資訊,請參閱 SQL Reference 中的 SET CURRENT DEGREE 陳述式。
此選項會決定 DB2 CLI 是否要顯示對話框,來報告在 SQL 查詢陳述式準備結束時, 由 DB2 最佳化工具所傳回的估計值。
圖形視窗會顯示最佳化程式估計值,且附有按鈕可讓使用者選擇他們是否想要繼續此查詢的後續執行或是取消它。
DB2ESTIMATE 的建議值為 60000。
此選項僅適用於連接 DB2 版本 2 或更新版本之資料庫時。 為了讓視窗出現,應用程式須有圖形介面。
如果使用了此選項,則會關掉 DB2 CLI/ODBC 選項 DEFERREDPREPARE。
此關鍵字決定是否將由伺服器產生「解譯 Snapshot」及 (或) 「解譯」表格資訊。
會將 'SET CURRENT EXPLAIN SNAPSHOT=NO' 及 'SET CURRENT EXPLAIN MODE=NO' 陳述式傳送給伺服器, 以停用「解譯 Snapshot」及「解譯」表格資訊擷取機能。
會將 'SET CURRENT EXPLAIN SNAPSHOT=YES' 及 'SET CURRENT EXPLAIN MODE=NO' 陳述式傳送給伺服器, 以啟用「解譯 Snapshot」機能以及停用「解譯」表格資訊擷取機能。
會將 'SET CURRENT EXPLAIN MODE=YES' 及 'SET CURRENT EXPLAIN SNAPSHOT=NO' 傳送到伺服器, 以啟用「解譯」表格資訊擷取機能,並停用「解譯 Snapshot」機能。
會將 'SET CURRENT EXPLAIN MODE=YES' 及 'SET CURRENT EXPLAIN SNAPSHOT=YES' 傳送到伺服器, 以啟用「解譯 Snapshot」暨「解譯」表格資訊擷取機能。
將「解譯」資訊插入「解譯」表格中,在產生「解譯」資訊之前必須建立「解譯」表格。 這些表格的相關資訊,請參閱 SQL Reference。
現行授權 ID 必須具有「解譯」表格的 INSERT 特權。
選項 1 只在連接 DB2 Common Server 版本 2.1.0 或更新版本資料庫時有效; 而選項 2 及 3 適用於連接 DB2 Common Server 版本 2.1.1 或更新版本資料庫。
如果已設定了此選項,則 DB2 CLI 會在連接成功後發出下列 SQL 陳述式:
SET CURRENT QUERY OPTIMIZATION positive number
這是指定最佳化程式應該操作 SQL 查詢的查詢最佳化層次。 請參閱 SQL Reference, 即可取得可容許的最佳化層次。
這個關鍵字容許「資料來源名稱」超過 8 個單一位元組字元。 「資料來源名稱」(DSN) 是以方括弧括住的名稱, 表示 db2cli.ini 檔案 (這是一個 ASCII 檔案所在的平台) 中的區段標頭。 一般說來, 這個區段標頭是資料庫別名, 最長長度為 8 個位元組。 希望以更長、更有意義的名稱來參照資料來源的使用者, 可以將較長的名稱放在區段標頭中, 並將這個關鍵字值設定為 CATALOG 指令上所使用的資料庫別名。 底下是一個範例:
; 更長的名稱對映到 8 個單一位元組字元的資料庫別名 [MyMeaningfulName] DBALIAS=DB2DBT10
一般使用者可以在實際資料庫別名為 DB2DBT10 時, 將 [MyMeaningfulName] 指定為連接時的資料來源名稱。
在 16 位元的 Windows ODBC 環境中, 在 ODBC.INI 檔案中的 [ODBC DATA SOURCES] 登錄下, 下面這一行也必須以長別名 (dbname) 來更新。
< alias >=IBM DB2 ODBC DRIVER
當與 DB2 for MVS/ESA 連接時,且僅在應用程式要求(基本) 表格型錄資訊時, 會使用此選項。 若有大量的表格存在 DB2 for MVS/ESA 子系統中, 則您可以指定 dbname 來減少應用程式查詢表格資訊 所需的時間及應用程式所列出的表格數。
若設定此選項,陳述式 IN DATABASE dbname 將添加至各種陳述式,例如 CREATE TABLE 後面。
這個值會對映到 DB2 for MVS/ESA 系統型錄表格中的 DBNAME 直欄。 若沒有指定值,或透過 TABLETYPE 指定概略表、同義名、系統表格或別名, 則僅將限制表格資訊;而不用 DBNAME 限制概略表、別名和同義名。 它可連同 SCHEMALIST 及 TABLETYPE 一起用來進一步限制 傳回資訊的表格數。
這個選項只能暫時使用;您必須改用儲存程序型錄表格。 請參閱 SQL Reference, 即可取得更進一步的資訊。
在所有沒有明確指定檔案庫的儲存程序呼叫中, 都將使用這個選項指向的檔案庫。 因為您正在伺服器機器上指定一個位置, 所以您必須使用該作業系統的路徑格式, 而非從屬站。 欲知詳情,請參閱 SQL Reference 中的 CALL 陳述式。
例如,如果儲存程序是以檔案庫檔案 d:\terry\proclib\comstor 位於伺服器上, 您就可以將 DEFAULTPROCLIBRARY 設定為 d:\terry\proclib\comstor, 然後呼叫儲存程序 func,而不指定檔案庫。 所傳送的結果 SQL 陳述式如下:
CALL d:\terry\proclib\comstor!func
延後傳送 PREPARE 要求,直到發出相對應的執行要求。 然後兩個要求會結合為一個指令/回覆流程 (取代兩個要求), 將網路流程最小化並改善效能。
預設的行為在 DB2 版本 2 就已經變更了。 延後的準備目前是預設值,而且如果需要的話必須確實關閉。
如果目標「DB2 Common Server」資料庫或 DDCS 閘道不支援延後的準備, 則從屬站會停用該連接的延後準備。
註: | 啟用延後的準備時, 則 PREPARE 陳述式的 SQLCA 的 SQLERRD(3) 及 SQLERRD(4), 在正常情況下所傳回的橫列及成本估計值可能會是 0。 這也是那些要使用這些值來決定是否要繼續 SQL 陳述式的使用者所擔心的。 |
如果 CLI/ODBC 選項DB2ESTIMATE 不是設定為 0,則會關閉這個選項。
CLI/ODBC 驅動程式可以支援多個並行的緒。
這個選項是用來啟用或停用多緒支援。
如果多緒功能停用的話,則所有緒的所有呼叫都會連載在處理層次上。 針對需要 DB2 版本 2. 之連載行為的多緒應用程式,請使用這個設定。
(這個選項包含在起始設定檔的 Common 區段中, 因此適用於所有與 DB2 的連接。)
這個選項是指定在最後一個記錄送到從屬站時,是否要自動關閉伺服器上的暫時游標, 而不關閉從屬站上的游標。
這會儲存 CLI/ODBC 驅動程式,因為網路要求知道游標已經關閉, 所以不會發出要確實關閉該游標的陳述式。
這個選項開啟時,將會加速應用程式使用許多小的結果設定。
如果在下列其中一種情況下, 將不會使用 EARLYCLOSE 功能:
註: | 您雖然可以隨時設定這個選項, 但所使用的選項值是在陳述式執行時 (在游標開啟時) 就存在的一個值。 |
這個選項可用來減少應用程式在資料庫中取得表格的專用權列示時所傳回的資訊量。 所指定的授權 ID 列示可作為過濾器;只有傳回的表格或直欄 才具有授與那些 ID 的專用權。
請將這個選項設定為一或數個被授與專用權的授權 ID 列示。 請以單引號區分每一個被授與專用權的授權 ID,然後再以逗點加以分隔。 整個字串必須以雙引號括住。 例如:
GRANTEELIST=" 'USER1', 'USER2', 'USER8' "
在上述範例中,如果應用程式取得特定表格的專用權列示, 則只有具授與 USER1、USER2 或 USER8 之專用權的直欄才會被傳回。
這個選項可用來減少應用程式在資料庫中取得表格的專用權列示時所傳回的資訊量。 所指定的授權 ID 列示可作為過濾器;只有傳回的表格或直欄 才具有由那些 ID 授與的專用權。
請將這個選項設定為一或數個已授與專用權的授權 ID 列示。 請以單引號區分每一個已授與專用權的授權 ID,然後再以逗點加以分隔。 整個字串必須以雙引號括住。 例如:
GRANTORLIST=" 'USER1', 'USER2', 'USER8' "
在上述範例中,如果應用程式取得特定表格的專用權列示, 則只有具由 USER1、USER2 或 USER8 授與之專用權的直欄才會被傳回。
這個選項是控制應用程式如何傳回兩個相關的資訊:
預設值為不傳回 GRAPHIC,因為許多現成應用程式無法辨識這個資料類型, 且無法提供正確的處理。
將此選項與 SERVICENAME 選項一起使用,以指定此從屬站機器與執行 DB2 伺服器 間 TCP/IP 連接的必要屬性。 只有在 PROTOCOL 選項設定為 TCPIP 時,才需考慮使用這兩個值。
請指定伺服器系統的主電腦名稱或其 IP 位址。
在特殊的情況下,應用程式不會正確處理警告訊息。 這個選項是用來指出是否要將資料庫管理程式的警告傳送給應用程式。
雖然這個選項可以單獨使用,但也可以連同 WARNINGLIST CLI/ODBC 架構關鍵字一起使用。
少數情況下,應用程式可能無法正確地處理某些警告訊息,但仍不想忽略所有警告訊息。 此關鍵字可用來指定不傳給應用程式的警告。 若要忽略所有資料庫管理程式警告,請使用 IGNOREWARNINGS 關鍵字。
若 IGNOREWARNLIST 與 WARNINGLIST 兩者皆包含 sqlstate,則還是會忽略它。
每一個 sqlstate 必須是大寫,以單引號定界限,以逗點區隔。 整個字串必須以雙引號括住。 例如:
IGNOREWARNLIST="'01000', '01004','01504'"
0 = 不快取資料庫連接 (預設值)。
將這個選項設定為大於 0 的值, 即可讓應用程式不斷地加速與使用相同連接資訊的同一個資料庫連線及斷線。
CLI/ODBC 驅動程式會保持連接一直開啟, 您就不需要每一次都要關閉連接後再重新開啟, 即可隨時快取連接資訊。 當該要求第二次連到同一個資料庫時,則會使用現存的連接。 這可以省下關閉第一個連線及重新開啟第二個連接的時間、資源及網路流程。
這個選項的設定值是指出要快取的資料庫連接數。雖然它的上限只受限於系統資源, 但通常 1 或 2 的值就足夠得益於這個行為的應用程式使用。
根據預設值,會快取 5 個陳述式 handle 所需的記憶體。 關閉陳述式 handle 時,該 handle 所使用的記憶體不會取消配置, 但會在配置下一個陳述式 handle 時取而代之。
這個選項的設定值是決定快取陳述式 handle 的數量。 它可以設定為小於 5 的值,以明顯減少陳述式快取記憶體所使用的記憶體總量。 它可以增加到 5 以上,以改善應用程式開啟、 關閉及重新開啟大型陳述式設定的效能。
快取陳述式 handle 數的上限取決於系統資源。
這個會置換 2 GB (若是 DBCLOB,則為 1G) 值 (由 SQL_CLOB、 SQL_BLOB 及 SQL_DBCLOB SQL 資料類型的 COLUMN_SIZE 直欄的 SQLGetTypeInfo() 傳回)。 後續含有 LOB 直欄的 CREATE TABLE 陳述式將使用您在此設定的直欄大小值,而不使用預設值。
這個選項會指示 DB2 CLI,應用程式以大型物件 (LOB)
直欄使用資料庫時會期望什麼資料類型。
資料庫資料類型 | 大型物件 (0--預設值) | 長式資料類型 (1) |
---|---|---|
CLOB | SQL_CLOB | SQL_LONGVARCHAR |
BLOB | SQL_BLOB | SQL_LONGVARBINARY |
DBCLOB | SQL_DBCLOB | SQL_LONGVARGRAPHIC |
這個選項有助於執行無法處理大型物件資料類型的 ODBC 應用程式。
DB2 CLI/ODBC 選項 LOBMAXCOLUMNSIZE 可連同這個選項,一起用來減少為資料所宣告的預設大小。
這個選項是用來指定每一個 CLI/ODBC 應用程式可容許的最大 連接數目。此可用作最大數目連接的控制器,因為管理者可能希望限制開啟每個應用程式。 0 的值表示沒有限制; 也就是說,只要系統資源許可,應用程式可以儘可能地開啟所要的連接數。
在 OS/2 及 WIN32 平台 (Windows NT 及 Windows 95)上,若正在使用 NetBIOS 通信協定, 則此值會與目前由應用程式設置的連接(NetBIOS 階段作業)數相對應。OS/2 NetBIOS 值的範圍從 1 到 254。指定 0 (預設值) 會導致 5 個保留的 連接。其它應用程式無法使用保留的 NetBIOS 階段作業。 此參數所指定的連接數將適用於 DB2 NetBIOS 通信協定用來連接至遠端伺服器的任何配接卡 (配接卡數量是指定在 NetBIOS 節點的節點型錄中)。
將 CONNECT 模式設定為 SHARE 或 EXCLUSIVE。 若應用程式在連接時設定了一個模式, 則會忽略此值。預設值為 SHARE。
註: | EXCLUSIVE 不容許用於 DRDA 連接。 有關 CONNECT 陳述式的詳細資訊,請參閱 SQL Reference。 |
這個選項是用來指定 SQLConnect() 要求如何對映到實體資料庫連接。
若 MULTICONNECT 設為 0,則必須使用關鍵字 DISABLEMULTITHREAD 來停用多緒作業。
註: | 如果 MULTICONNECT 是設定為「關閉」,則所有陳述式會在同一個連接上執行, 因此會在同一個異動中。 這個表示 rollback 會將所有陳述式 roll back 在所有的連接上。 要這樣做之前,或應用程式無法正確作業之前, 請確定該應用程式是計劃與關閉的 MULTICONNECT 一起執行。 |
(這個選項包含在起始設定檔的 Common 區段中, 因此適用於所有與 DB2 的連接。)
這個選項是用來添加 "OPTIMIZE FOR n ROWS" 子句到每一個選取陳述式, 其中的 n 是大於 0 的整數。 如果設定為 0 (預設值),則不會添加這個子句。
有關 OPTIMIZE FOR n ROWS 子句的影響, 請參閱 Administration Guide., 即可取得詳細資訊。
當啟用 OPTIMIZESQLCOLUMNS 時 (設為 1),若為「直欄名稱」指定明確的 (不指定萬用字元) 「綱目名稱」、明確的「表格名稱」及 % (表示全部的直欄),則最佳化所有的 SQLColumns() 呼叫。 DB2 CLI/ODBC 驅動程式將最佳化此呼叫,因此不掃描系統表格。 若將呼叫最佳化,則不傳回 COLUMN_DEF 資訊 (其中含有直欄的預設字串)。 連接 AS/400 資料庫時,由 SQLColumns() 針對資料類型是 NUMERIC 的直欄所傳回的資訊將不正確。 若應用程式不需要此資訊,則啟用最佳化可增加效能。
若應用程式需要 COLUMN_DEF 資訊,則 OPTIMIZESQLCOLUMNS 應該設為 0。 此為預設值。
這個關鍵字是針對 ODBC 應用程式所發生的問題,指定一個解決方法。 指定的值可以是無、一個或多個解決方法。 此處所指定的修補值,是與任何可能設定的 PATCH2 值一起使用。
您可以使用「DB2 CLI/ODBC 設定」筆記本, 選取一或多個修補值。 如果您是在 db2cli.ini 檔案本身設定這些值, 而且希望使用多個修補值,那麼,只要將這些值加起來, 成為一個關鍵字值就可以了。 比方說,如果您需要修補值 1、4 和 8,請指定 PATCH1=13。
「DB2 CLI/ODBC 設定」筆記本列了一串值。 如果您想知道如何更新這一列值, 請選取「DB2」資料夾中的「服務程式」資料夾。 這項資訊也包含在 README 檔中 (如果該平台沒有現行修補值,則 README 中不會有這個區段)。
這個關鍵字是針對 CLI/ODBC 應用程式所發生的問題,指定一個解決方法。 指定的值可以是無、一個或多個解決方法。 此處所指定的修補值,是與任何可能設定的 PATCH1 值一起使用。
當您指定多個修補值時, 這些值是在以逗點分隔的字串中指定 (與 PATCH1 選項不同,PATCH1 值就是這些值的總和).
如果要設定 PATCH2 值 3、4 和 8,必須指定:
PATCH2="3, 4, 8"
PATCH2 是在 README 檔中 (如果該平台沒有現行修補值,則 README 中不會有這個區段)。
每當 DB2 CLI 發生可以用 SQLGetDiagRec() 或 SQLError() 擷取的錯誤時, 畫面便會出現訊息框。 對於不對使用者報告訊息的除錯應用程式而言,這一點相當有用。
在使用「檔案 DSN」時,TCP/IP 是唯一支援的通訊協定。 將選項設定為字串 TCPIP (沒有斜線)。
當此選項已設定時,則下列選項亦必須設定:
如果應用程式不是在連接時輸入通行碼, 則採用此 password 值。
它是以純文字形式儲存起來,因此沒有安全保護可言。
應用程式可以使用 SQLSetStmtAttr() 函數,來設定 SQL_ATTR_QUERY_TIMEOUT 陳述式屬性。 這表示在執行應用程式前,等待 SQL 陳述式執行的秒數
QUERYTIMEOUTINTERVAL 架構關鍵字,是用來表示 CLI 驅動程式在檢查查詢是否完成的間隔時間。
例如,假設 SQL_ATTR_QUERY_TIMEOUT 設定為 25 秒 (等待 25 秒後逾時),且 QUERYTIMEOUTINTERVAL 設定為 10 秒 (每隔 10 秒檢查查詢)。 查詢會在 30 秒後逾時 (第一個檢查會在 25 秒的限制後開始)。
也可能發生 SQL_ATTR_QUERY_TIMEOUT 的設定值太低的情況,則查詢不應會逾時。 如果應用程式無法修改 (例如它是協力廠商 ODBC 應用程式), 則 QUERYTIMEOUTINTERVAL 可以設定為 0,且 CLI 驅動程式會忽略 SQL_ATTR_QUERY_TIMEOUT 的設定值。
(這個選項包含在起始設定檔的 Common 區段中, 因此適用於所有與 DB2 的連接。)
SCHEMALIST 的目的是提供其他限制預設值, 藉以針對那些列出 DBMS 中每個表格的應用程式,提升其效能。
如果資料庫中定義了大量表格, 則可以指定綱目列示,讓它減少應用程式查詢表格資訊的時間, 同時也減少該應用程式列出的表格數目。 每一個綱目名稱都有大小寫區分、 必須以單引號分隔、而且各以逗點分開。 整個字串必須以雙引號括住。 例如:
SCHEMALIST="'USER1','USER2','USER3'"
對 DB2 for MVS/ESA 而言,CURRENT SQLID 也可以併入這個列示中, 但卻不加單引號,例如:
SCHEMALIST="'USER1',CURRENT SQLID,'USER3'"
字串最多有 256 個字元。
這個選項可與 DBNAME 和 TABLETYPE 一起使用, 以進一步限制將傳回資訊的表格數目。
將此選項與 HOSTNAME 選項一起使用,以指定此從屬站機器與執行 DB2 伺服器 間 TCP/IP 連接的必要屬性。 只有在 PROTOCOL 選項設定為 TCPIP 時,才需考慮使用這兩個值。
請指定伺服器系統的服務程式名稱或其埠號。
與 POPUPMESSAGE 選項一起使用。 可以避免 DB2 CLI 出現與所定義之狀態有關的錯誤。
每一個 SQLSTATE 必須以大寫表示、 以單引號分隔、而且以逗點分開。 整個字串必須以雙引號括住。 例如:
SQLSTATEFILTER=" 'HY1090', '01504', '01508' "
此關鍵字可用來指定擷取檔名,並選用性地指定儲存的目錄。
將 CLI/ODBC 應用程式當成靜態 SQL 執行的相關資訊, 請參閱 STATICMODE 關鍵字。
此關鍵字可用來指定「靜態剪影日誌檔」名稱,並選用性地指定儲存目錄。
若需將 CLI/ODBC 應用程式當成靜態 SQL 執行的其餘相關資訊, 請參閱 STATICMODE 關鍵字.
此選項可讓您指定要如何處理此 DSN 之 CLI/ODBC 應用程式所發出的 SQL:
若需有關將 CLI/ODBC 應用程式當成靜態 SQL 執行的相關資訊, 請參閱「版本注意事項」 及 CLI Guide and Reference 您也可以從網際網路上取得其它資訊,網址為 http://www.ibm.com/software/data/db2/udb/staticcli
此關鍵字可用來指定應用程式在相配模式下執行時所用的資料包。 您必須先使用「擷取模式」來建立「擷取檔」。
只會使用指定資料包名稱的前 7 個字元。 系統會在字尾新增一個位元,代表每一個隔離層次,如下所示:
若需將 CLI/ODBC 應用程式當成靜態 SQL 執行的相關資訊, 請參閱 STATICMODE 關鍵字.
您可以使用這個選項, 來指定 COMMIT 和 ROLLBACK 在多個資料庫 (DUOW) 連接之間的協調方式。 當預設的連接類型設為「協調連接」(CONNECTTYPE = 2) 時才有相關。
“異動管理程式”不可用於執行兩階段確認, 但單階段確定可用來確定每個資料庫在多個資料庫異動中做的工作。
“異動管理程式”需要在那些支援此動作的資料庫中 協調兩階段確認。
這個選項可指出, 當發出 DB2 CLI 和「ODBC 編目」函數呼叫,以取得系統編目資訊時, 可以搜尋另一個綱目,代替 SYSIBM (或 SYSTEM, QSYS2) 綱目。
系統管理者可以使用這個綱目名稱來定義一組檢視畫面,
這些畫面是取自下列每一個系統編目表的其中幾列所組成:
DB2 Universal Database | DB2 for MVS/ESA | DB2 for VSE & VM | OS/400 | DB2 Universal Database for AS/400 |
---|---|---|---|---|
SYSTABLES | SYSTABLES | SYSCATALOG | SYSTABLES | SYSTABLES |
SYSCOLUMNS | SYSCOLUMNS | SYSCOLUMNS | SYSCOLUMNS | SYSCOLUMNS |
SYSINDEXES | SYSINDEXES | SYSINDEXES | SYSINDEXES | SYSINDEXES |
SYSTABAUTH | SYSTABAUTH | SYSTABAUTH |
| SYSCST |
SYSRELS | SYSRELS | SYSKEYCOLS |
| SYSKEYCST |
SYSDATATYPES | SYSSYNONYMS | SYSSYNONYMS |
| SYSCSTCOL |
SYSPROCEDURES | SYSKEYS | SYSKEYS |
| SYSKEYS |
SYSPROCPARMS | SYSCOLAUTH | SYSCOLAUTH |
| SYSREFCST |
| SYSFOREIGNKEYS |
|
|
|
| SYSPROCEDURES 1 |
|
|
|
| SYSDATABASE |
|
|
|
比方說,如果系統編目表的該組檢視畫面是在 ACME 綱目中, 則 SYSIBM.SYSTABLES 的檢視畫面為 ACME.SYSTABLES; 而 SYSSCHEMA 應設為 ACME。
定義及使用系統型錄表格的有限制概略表會減少應用程式所列出的表格數目, 如此可減少應用程式查詢表格資訊所花費的時間。
如果未指定任何值,則預設值為:
這個關鍵字可以與 SCHEMALIST 和 TABLETYPE (以及 DB2 for MVS/ESA 上所用的 DBNAME ) 一起使用, 進一步限制傳回資訊所用的表格數目。
如果大多數表格均定義在資料庫中,可以指定一個 tabletype 字串,來減少 應用程式查詢表格資訊所花的時間,以及減少應用程式所列出的表格數目。
您可以指定任何數量的值。 每一個類型必須以單引號分隔、以逗點分開、而且以大寫表示。 整個字串必須以雙引號括住。 例如:
TABLETYPE="'TABLE','VIEW'"
這個選項可以與 DBNAME 和 SCHEMALIST 一起使用, 以進一步限制將傳回資訊的表格數目。
TABLETYPE 可提供 DB2 CLI 函數的預設值, 該函數可擷取資料庫中的表格、檢視畫面、別名、和同義字的列示。 如果應用程式未在函數呼叫上指定一個表格類型,且未使用這個 關鍵字,將傳回關於所有表格類型的資訊。 如果應用程式沒有在此函數呼叫上引用 tabletype 的值, 則該引數值將取代這個關鍵字值。
如果 TABLETYPE 含有 TABLE 以外的任何值, 便不能用 DBNAME 關鍵字設定,將資訊限制在某個 DB2 for MVS/ESA 資料庫。
當您使用「大型物件」(CLOBS、BLOBS 等) 時,常常會在從屬站機器建立一個暫時檔案,來存放資訊。 您可以使用這個選項,來指定這些暫時檔案的位置。 如果沒有指定任何位置,便採用系統暫時目錄。
關鍵字是放在 db2cli.ini 檔的資料來源專屬區段, 其語法如下:
當您存取「大型物件」時, 如果路徑名稱無效,或者如果指定目錄中無法建立暫時檔案, 便會傳回 HY507 的 SQLSTATE。
當這個選項在 (1) 時,CLI/ODBC 追蹤記錄會附加在 TRACEFILENAME 架構參數所指出的檔案中, 或是 TRACEPATHNAME 架構參數所指出的次目錄中的檔案。
例如,若要設置 CLI/ODBC 追蹤檔, 而且在記錄每一筆追蹤登錄之後,便寫入磁碟:
[COMMON] TRACE=1 TRACEFILENAME=E:\TRACES\CLI\MONDAY.CLI TRACEFLUSH=1
(這個選項包含在起始設定檔的 Common 區段中, 因此適用於所有與 DB2 的連接。)
若啟用 TRACECOMM (1),則追蹤檔內將包括每一個網路要求的相關資訊。
這個選項只能在 TRACE CLI/ODBC 選項開啟時使用。請參閱 TRACE,取得相關範例。
(這個選項包含在起始設定檔的 Common 區段中, 因此適用於所有與 DB2 的連接。)
如果指定的檔案不存在,便會建立它;否則, 新的追蹤資訊便會附加到該檔尾端。
如果給定的檔名無效,或者該檔無法建立或寫入, 就不會產生任何追蹤,也不會傳回任何錯誤訊息。
這個選項只能在 TRACE 選項開啟時才能使用。 當您在 CLI/ODBC 架構公用程式中設定這個選項時,就會自動開啟 TRACE 選項。
請參閱 TRACE 選項,以取得使用各種追蹤設定 的範例。 如果此選項已設定,則會忽略 TRACEPATHNAME 選項。
DB2 CLI 追蹤只能供作除錯之用。它不但會降低 CLI/ODBC 驅動程式的執行速度, 而且追蹤資訊一旦保留一段時間之後,就可能變得很大。
(這個選項包含在起始設定檔的 Common 區段中, 因此適用於所有與 DB2 的連接。)
將此選項設為 on (TRACEFLUSH = 1), 以便在記錄每一個追蹤登錄之後,強迫寫入磁碟。 這樣雖然會減慢追蹤處理的速度,但也可以在應用程式繼續處理下一個陳述式之前, 就先確定每一筆登錄都寫入磁碟中。
這個選項只能在 TRACE CLI/ODBC 選項開啟時使用。請參閱 TRACE 選項,取得相關的範例。
(這個選項包含在起始設定檔的 Common 區段中, 因此適用於所有與 DB2 的連接。)
每一個使用相同 DLL 或共用檔案庫的緒或處理, 都會在指定目錄下另外建立其 DB2 CLI/ODBC 追蹤檔。
如果給定的次目錄無效,或者無法寫入的話, 就不會產生任何追蹤,也不會傳回任何錯誤訊息。
這個選項只能在 TRACE 選項開啟時才能使用。 當您在 CLI/ODBC 架構公用程式中設定這個選項時,就會自動開啟 TRACE 選項。
請參閱 TRACE 選項,取得使用各種追蹤設定 的範例。 如果採用 DB2 CLI/ODBC 選項 TRACEFILENAME, 便不會處理它。
DB2 CLI 追蹤只能供作除錯之用。它不但會降低 CLI/ODBC 驅動程式的執行速度, 而且追蹤資訊一旦保留一段時間之後,就可能變得很大。
(這個選項包含在起始設定檔的 Common 區段中, 因此適用於所有與 DB2 的連接。)
可將隔離層次設為:
括弧中的字,是 IBM 對同等 SQL92 隔離層次的術語。 請注意,不確定並不是一種 SQL92 隔離層次, 它只在 DB2 Universal Database for AS/400 上才被支援。 如需隔離層次的其他資訊,請參閱 SQL Reference。
唯有當使用預設隔離層次時,此關鍵字才有作用。 若應用程式已特別設定隔離層次,則此關鍵字沒有作用。
如果應用程式未在連接時輸入使用者 ID,則採用指定的 userid 值。
這個選項可讓您指定是否要將底線字元 "_" 作為萬用字元使用 (代表任何字元,包括沒有字元), 還是只代表它自己本身。 這個選項只會影響接受搜尋型樣字串的編目函數呼叫。
底線被視為符合任何字元或無字元的萬用字元。 例如,如果兩個表格定義如下:
CREATE TABLE "OWNER"."KEY_WORDS" (COL1 INT) CREATE TABLE "OWNER"."KEYWORDS" (COL1 INT)
如果在表格名稱搜尋型樣引數中指定 "KEY_WORDS", 則傳回表格資訊的 DB2 CLI 編目函數呼叫 (SQLTables()),會傳回這兩個登錄。
底線將視為本身。 如果將兩個表格依上述範例定義, 則如果是在表格名稱搜尋型樣引數中指定 "KEY_WORDS", SQLTables() 只會傳回 "KEY_WORDS" 登錄。
就資料庫中含有底線的物件名稱 (擁有者、表格、直欄) 來說,將這個關鍵字設定為 0 可能會造成執行效能的改善。
註: | 這個關鍵字只會影響 2.1 版以前的 DB2 一般伺服器。 LIKE 述句的 ESCAPE 子句,可以用於後續的版本,以及其他所有的 DB2 伺服器。 有關 ESCAPE 子句的其他資訊,請參閱 SQL Reference. |
被當作錯誤傳回的任何數量的 SQLSTATE, 都可以降為警告。每一個都必須用單引號括住、用逗點分開、同時以大寫表示。 整個字串必須以雙引號括住。 例如:
WARNINGLIST=" '01S02', 'HY090' "
這個選項可以和 IGNOREWARNINGS CLI/ODBC 架構關鍵字一起使用。 如果您也將 IGNOREWARNINGS 設為 on, 那麼,只要是您降為警告的任何錯誤,都不會報告出來。