區域字集是指可在用戶端作業系統的指令行 Shell 中輸入或顯示的字集。在 UNIX 系統,區域字集是由 LANG 環境變數所控制。在 Windows,這是由「地區及語言選項」中的設定值所控制。
在 7.0 之前的 Rational ClearQuest 版本中,除非區域字集符合 ClearQuest 資料字碼頁,否則不允許寫入作業。如果設定不符,則只接受唯讀作業。唯讀模式是必要的,因為 ClearQuest 應用程式將資料寫入資料庫時是使用用戶端或 Web 伺服器的區域字集,而非資料庫集的 ClearQuest 資料字碼頁。
從 7.0 版開始,Rational ClearQuest 軟體是以 Unicode 來處理資料,而且它的應用程式使用 ClearQuest 資料字碼頁來寫入其資料庫。這些應用程式可以在讀寫模式下連接至 ClearQuest 資料庫,即使區域字集不符合 ClearQuest 資料字碼頁也一樣。
Oracle 將供應商資料庫字集稱為字集 或 charset;IBM DB2 將之稱為字碼頁或字碼集;而 SQL Server 則稱為字碼頁或對照 (collation)。
從 Rational ClearQuest 7.1.1 版開始,您可以選取 UTF-8 ClearQuest 資料字碼頁用於 Oracle 和 DB2 資料庫集。UTF-8 資料字碼頁允許使用者資料庫中有多國語言字元儲存體。選取 UTF-8 作為資料字碼頁時,您會在混合區域字集部署中工作,除非作業系統的區域字碼頁也是 UTF-8。後者並非 Windows 系統的選項。
針對混合的區域字集部署或 UTF-8 多種語言資料庫環境撰寫的 Script 和連結鉤,必須處理區域字集可能不包括的 ClearQuest 字元資料。必須編寫那些 Script 和連結鉤來支援 Unicode,以便在這些環境中充分利用此功能。
設計工具包含新設定:Unicode Aware。為 7.0 版撰寫的連結鉤可指定從 ClearQuest API 呼叫傳回的字串中的字元是否只能在區域字集中(RETURN_STRING_LOCAL),或可以是任何 Unicode 字元 (RETURN_STRING_UNICODE)。此外,有新的 API 功能可用來控制傳回字串模式。在 RETURN_STRING_LOCAL 模式中,如果傳回字串包括無法在區域字集中表示的字元,則 API 呼叫會傳回異常。在 RETURN_STRING_UNICODE 中,API 呼叫會正確傳回所有字元。
為了確保連結鉤和 Script 能夠處理混合區域字集或 UTF-8 部署中的所有資料,您必須將此模式設為 RETURN_STRING_UNICODE,並適當處理可能傳回的 Unicode 字元。將傳回字串模式設為 RETURN_STRING_UNICODE 還不夠;您必須驗證程式碼是否可以正確處理 Unicode 字元。下列準則雖然很有幫助,但最後您還是必須使用適當的 Unicode 程式設計技術來撰寫 Script 語言。
如果您要升級至 7.0 版,且環境中所有區域字集都符合 ClearQuest 資料字碼頁(這在舊版中很常見),則這些變更對現有的綱目沒有影響。預設模式是 RETURN_STRING_LOCAL,容許連結鉤和 Script 繼續運作。
如果您要將 7.0 版部署到區域字集不符合 ClearQuest 資料字碼頁的環境中,您必須確保 Script 可以處理 ClearQuest 軟體的 Unicode 字元資料,並將 Script 的傳回模式設為 RETURN_STRING_UNICODE,然後將套件升級至 7.0 版。如需支援 Unicode 的ClearQuest 套件的清單,請參閱表 1。不處理 Unicode 的 Script 可以執行,但如果系統試圖傳回任何不包含在區域字集中的字元資料給 Script,則會傳回錯誤。只要這些 Script 處理的資料受限於用戶端或 Web 伺服器的區域字集,它們就可以繼續運作。
套件 | 傳回字串模式 |
---|---|
AMWorkActivitySchedule | RETURN_STRING_UNICODE |
ATStateTypes | RETURN_STRING_UNICODE |
附件 | RETURN_STRING_UNICODE |
AuditTrail | RETURN_STRING_UNICODE |
BTStateTypes | RETURN_STRING_UNICODE |
BuildTracking | RETURN_STRING_UNICODE |
CQTM | RETURN_STRING_UNICODE |
客戶 | RETURN_STRING_UNICODE |
DeploymentTracking | RETURN_STRING_UNICODE |
DTStateTypes | RETURN_STRING_UNICODE |
電子郵件 | RETURN_STRING_UNICODE |
EnhancementRequest | RETURN_STRING_UNICODE |
eSignature | RETURN_STRING_UNICODE |
歷程 | RETURN_STRING_UNICODE |
附註 | RETURN_STRING_UNICODE |
專案 | RETURN_STRING_UNICODE |
解決方案 | RETURN_STRING_UNICODE |
TPM | RETURN_STRING_UNICODE |
ClearQuest 軟體會以 Unicode 字元來處理所有資料。不過,綱目連結鉤(Perl 和 Visual Basic)和其他 ClearQuest API 應用程式或整合可能未編寫成處理 Unicode 字元。在 7.0 版,傳回字串模式可用來處理此問題。連結鉤程式碼可在設計工具 Script 編輯器中設定為 Unicode Aware,以指出 Script 是在 RETURN_STRING_UNICODE 傳回字串模式中執行。(若要這麼做,請選取 Unicode Aware 勾選框)。Script 可呼叫 SetPerlReturnStringMode 或 SetBasicReturnStringMode 方法,將傳回字串模式設定為 RETURN_STRING_UNICODE。
當字串是由適用於 Perl 或 COM 的 ClearQuest API 傳回時,傳回字串模式會限制 (RETURN_STRING_LOCAL) 或容許完整 (RETURN_STRING_UNICODE) 字元表示法。
撰寫可處理 Unicode 字元的連結鉤和 Script 是不錯的做法。RETURN_STRING_LOCAL 是提供作為預設傳回字串模式,因此舊版 ClearQuest 軟體的現有連結鉤和 Script 不需要變更就可以執行。即使您目前沒有 Unicode 方面的需求,經過一段時間以後,您應該修改現有的連結鉤和 Script,使其在 RETURN_STRING_UNICODE 模式中運作。
依預設,當 ClearQuest API Script 傳回的字串包含區域字集以外的字元時,步驟 2 會產生異常。異常會防止資料毀損。在您檢閱及確認程式碼可處理 Unicode 字元之後,您可以使用 ClearQuest API 或在設計工具的 Script 編輯器中設定 RETURN_STRING_UNICODE 傳回字串模式。在步驟 2 做此變更之後,適用於 Perl 的 ClearQuest API 會以 UTF8 (UNICODE) 傳回欄位值字串(如果此字串包含非區域字集資料的話),適用於 VBScript、Visual Basic 或 COM 的 ClearQuest API 會傳回未限定的 Unicode 字元。無法以區域字集表示的字元可傳回至連結鉤或 Script,改以 Unicode 字元處理。
在 RETURN_STRING_LOCAL 模式中,可執行諸如執行查詢之類的作業,且查詢結果集可包含 Unicode 字元。唯有從 Rational ClearQuest API 方法的結果集擷取資料,且 API 呼叫傳回的字元不在區域字集中,才會產生異常。例如,如果傳回至整合的資料只包含區域字集字元,則整合或外部應用程式可對變更要求進行操作。當傳回的字元不在區域字集中時,整合程式碼必須處理 Rational ClearQuest API 方法產生的異常。如果整合 API 是配置為 RETURN_STRING_UNICODE,則不會產生異常,但應用程式必須正確處理所傳回的任何 Unicode 字元。在 RETURN_STRING_LOCAL 和 RETURN_STRING_UNICODE 模式中,如果應用程式寫入的字元無法以 ClearQuest 資料字碼頁表示,則異常狀況也會傳回至呼叫端整合或應用程式。
如需相關資訊,請參閱「IBM Rational ClearQuest API 參考手冊」說明中的設定連結鉤和 Script 的傳回字串模式。
部分套件或綱目並未設計為處理 Unicode 及非區域字集資料。每一個套件中的每一個 Script 所提供的支援會在設計工具 Script 編輯器中指示(已選取 Unicode Aware 勾選框)。DefectTracking 和「共用」綱目支援 Unicode。不過,若有綱目包括的套件不支援 Unicode 字元,則混合字集部署中無法使用此綱目。請參閱表 1。
您可以編輯或新增連結鉤來存取套件欄位,這些連結鉤被視為套件的一部分。那些連結鉤繼承套件的預設 Unicode 支援,但設計工具不顯示連結鉤的這個正確設定。
如果連接到資料庫集或群體的所有用戶端的區域字集符合資料字碼頁,則您不需要考量這些問題。如需字元表示法和字碼頁設定的相關資訊,請參閱「管理 Rational ClearQuest」線上說明。