DBCS 専用フィールドには、システムによって自動的にシフト制御文字が挿入されます。
混用フィールドまたは択一フィールドにシフト制御文字を挿入するには、以下のステップを実行してくださ い。
1. カーソルを 2 バイト・データを挿入したいフィールドに位置付けます。
2. シフト制御文字挿入キーを押します (使用する DBCS ディスプレイ装置の使用者の手引きに従ってくだ さい)。
システムは次に示すように、一対のシフト制御文字を同時に挿入します (ここでは、 0E はシフトアウト文 字を表し、 0F はシフトイン文字を表しています)。
0E0F
カーソルは、システムによってシフトイン文字の下に置かれ、キーボードは挿入モードになります。シフト 制御文字の間に 2 バイト文字を挿入します。 2 バイト文字を挿入するには、カーソル位置から 2 バイト 文字の入力を始めます。たとえば、2 バイト文字ストリング D1D2D3 は次のように入力します (ここで は、 0E はシフトアウト文字を表し、 0F はシフトイン文字を表し、 D1、D2、および D3 は 3 つの 2 バ イト文字を表しています)。
0ED1D2D30F
すでにフィールドにシフト制御文字が入っているかどうかを知るには、シフト制御文字表示キーを押してく ださい。
DBCS グラフィック・フィールドに 2 バイト文字を保管する場合は、シフト制御文字の使用は必要ありま せん。シフト制御文字をグラフィック・フィールドに挿入しないでください。
表示される拡張 2 バイト文字の数:
システムでは、日本語表示画面にさまざまな外字を 1 時点で 512 文字まで表示することができます。それ 以上の外字は、未定義文字として表示されますが、システムには正しく保管されています。
表示画面上の DBCS 入力フィールドの数:
DBCS 入力フィールドを使用すると、1 つの画面で許される入力フィールドの合計数に影響を生じます。
ローカル 5250 ディスプレイの場合は、入力フィールドは最大 256 まで指定することができます。しか し、DBCS フィールドを使用する場合、3 つ使用するごとにフィールド最大数は 1 つずつ減少します。
たとえば、画面上に DBCS フィールドが 9 つある場合、フィールド最大数は 256 - (9/3) = 253 入力フィ ールドになります。
英数字ワークステーションで 2 バイト・データを表示した場合の影響:
英数字ディスプレイ装置では、2 バイト・データを正しく表示することはできません。
英数字ディスプレイ装置で 2 バイト・データを表示しようとすると、次のような結果になります。
v システムはそのディスプレイ装置に照会メッセージを送り、 2 バイト・データを使用するそのプログラ ムを続行したいのか、取り消したいのかを問い合わせます。
v プログラムを使用し続けたい場合は、システムはシフト制御文字を無視し、 2 バイト文字を 1 バイト 文字であるかのように解釈します。表示される 2 バイト・データは意味をなしません。
DBCS ファイルのコピー操作
スプール DBCS ファイルも、非スプール DBCS ファイルも同様にコピーすることができます。
関連概念:
57ページの『UCS-2 グラフィック・フィールドの制約事項』
コピー元またはコピー先が UCS-2 グラフィック・フィールドの場合、いくつかの制約事項があります。
スプール DBCS ファイルのコピー操作:
スプール・ファイル・コピー (CPYSPLF) コマンドを使用することによって、 2 バイト文字データを持つ スプール・ファイルをコピーできます。ただし、ファイルのコピー先のデータベース・ファイルは、
IGCDTA(*YES) の値を指定して作成されていなければなりません。
2 バイト・データが入っているデータベース・ファイルに、スプール・ファイルをコピーする場合に、シフ トアウト文字用に余分の桁が必要になります。このシフトアウト文字は、レコードの制御情報とユーザー・
データの間に入れられます。次の表は、制御文字 (CTLCHAR) キーワードに対して指定される値に基づい た、シフトアウト文字の桁番号を示してあります。
CTLCHAR の値 シフトアウト文字の桁番号
*NONE 1
*FCFC 2
*PRTCTL 5
*S36FMT 10
非スプール DBCS ファイルのコピー操作:
ファイル・コピー (CPYF) コマンドを使用することによって、 2 バイト文字データを 1 つのファイルか ら別のファイルへコピーすることができます。
2 バイト・データベース・ファイルから英数字データベース・ファイルへデータをコピーするときは、次の パラメーターのいずれか 1 つを CPYF コマンドで指定してください。
v 両方のファイルが共にソース・ファイルの場合、または両方のファイルが共にデータベース・ファイル の場合は、 FMTOPT(*MAP) パラメーターまたは FMTOPT(*NOCHK) パラメーターのいずれかを指定 することができます。
v 一方のファイルがソース・ファイルで、他方のファイルがデータベース・ファイルである場合は、
FMT(*CVTSRC) パラメーターを指定してください。
DBCS ファイルを英数字ファイルへコピーする時は、ファイル・タイプの違いを示す通知メッセージが、
システムによって出されます。
物理ファイルまたは論理ファイルから物理ファイルへのコピーにおいては、コピー元ファイルとコピー先フ ァイルに同じ名前を持つフィールドがあっても、フィールドのデータ・タイプが次表のような時は、ファイ ル・コピー機能の FMTOPT(*MAP) オプション、または FMTOPT(*NOCHK) オプションのいずれかを指定 しなければなりません。
コピー元ファイルのフィールドのデータ・タイプ コピー先ファイルのフィールドのデータ・タイプ
A (文字) J (DBCS 専用)
O (DBCS 混用) J (DBCS 専用)
O (DBCS 混用) E (DBCS 択一)
E (DBCS 択一) J (DBCS 専用)
J (DBCS 専用) G (DBCS グラフィック)
O (DBCS 混用) G (DBCS グラフィック)
E (DBCS 択一) G (DBCS グラフィック)
G (DBCS グラフィック) J (DBCS 専用)
G (DBCS グラフィック) O (DBCS 混用)
G (DBCS グラフィック) E (DBCS 択一)
G (UCS-2 グラフィック) A (文字 (CCSID 非 65535))
G (UCS-2 グラフィック) O (DBCS 混用 (CCSID 非 65535))
G (UCS-2 グラフィック) E (DBCS 択一 (CCSID 非 65535))
G (UCS-2 グラフィック) J (DBCS 専用 (CCSID 非 65535))
G (UCS-2 グラフィック) G (DBCS グラフィック)
A (文字 (CCSID 非 65535)) G (UCS-2 グラフィック)
O (DBCS 混用 (CCSID 非 65535)) G (UCS-2 グラフィック)
E (DBCS 択一 (CCSID 非 65535)) G (UCS-2 グラフィック)
J (DBCS 専用 (CCSID 非 65535)) G (UCS-2 グラフィック)
G (DBCS グラフィック) G (UCS-2 グラフィック)
A (UTF-8) A (文字 (CCSID 非 65535))
A (UTF-8) O (DBCS 混用 (CCSID 非 65535))
A (UTF-8) E (DBCS 択一 (CCSID 非 65535))
A (UTF-8) J (DBCS 専用 (CCSID 非 65535))
A (UTF-8) G (DBCS グラフィック非 65535)
A (UTF-8) G (UTF-16)
A (UTF-8) G (UCS-2 グラフィック)
A (文字 (CCSID 非 65535)) A (UTF-8)
O (DBCS 混用 (CCSID 非 65535)) A (UTF-8)
E (DBCS 択一 (CCSID 非 65535)) A (UTF-8)
J (DBCS 専用 (CCSID 非 65535)) A (UTF-8)
G (DBCS グラフィック非 65535) A (UTF-8)
G (UCS-2 グラフィック) A (UTF-8)
G (UTF-16) A (文字 (CCSID 非 65535))
G (UTF-16) O (DBCS 混用 (CCSID 非 65535))
G (UTF-16) E (DBCS 択一 (CCSID 非 65535))
G (UTF-16) J (DBCS 専用 (CCSID 非 65535))
G (UTF-16) G (DBCS グラフィック非 65535)
G (UTF-16) A (UTF-8)
G (UTF-16) G (UCS-2 グラフィック)
A (文字 (CCSID 非 65535)) G (UTF-16)
O (DBCS 混用 (CCSID 非 65535)) G (UTF-16)
E (DBCS 択一 (CCSID 非 65535)) G (UTF-16)
J (DBCS 専用 (CCSID 非 65535)) G (UTF-16)
G (DBCS グラフィック非 65535) G (UTF-16)
G (UCS-2 グラフィック) G (UTF-16)
DBCS 専用フィールドまたは DBCS グラフィック・フィールドにコピーするために CPYF コマンドで FMTOPT(*MAP) を使うときは、コピー元ファイルの対応フィールドが以下のものであってはなりません。 v 2 バイト未満の文字フィールド
v 奇数バイトの長さの文字フィールド
v 奇数バイトの長さの DBCS 混用フィールド
注: UCS-2 グラフィック・フィールドから、またはそこに対して FMTOPT(*MAP) によるコピーを行う場 合、 CCSID 65535 を指定できるのは DBCS グラフィック・タイプだけです。 UCS-2 グラフィックは、
CCSID 65535 であってはなりません。
コピー元フィールドに上記のいずれかを指定すると、エラー・メッセージが出されます。
2 バイト・データを 1 つのデータベース・ファイルから別のデータベース・ファイルへコピーする場合、
FMTOPT(*MAP) パラメーターを指定すれば 2 バイト・データは正しくコピーされます。システムでは、2 バイト・データに対する埋め込みおよび切り捨てが正しく実行されて、データ保全性が保たれます。
DBCS 混用フィールドをグラフィック・フィールドにコピーするのに CPYF コマンドで FMTOPT(*MAP) を指定する場合、 DBCS 混用フィールドに SBCS データ (ブランクを含む) があると、変換エラーが発生 します。
アプリケーション・プログラムでの DBCS に関する考慮事項
この節では、2 バイト・データを処理するアプリケーションを作成する際の考慮事項について説明します。
2 バイト・データを処理するアプリケーション・プログラムの設計:
2 バイト・データを処理するアプリケーション・プログラムを設計する場合、このトピックに説明されてい るような考慮事項があります。
英数字データを処理するアプリケーション・プログラムを設計する場合と同じ要領に加えて、次の補足事項 も含めて 2 バイト・データを処理するアプリケーション・プログラムを設計してください。
v データベース・ファイルの中で使用されている 2 バイト・データを識別する。
v 2 バイト・データを使用する画面様式および印刷様式を設計する。
v 必要に応じて、対話式アプリケーション・プログラムの 2 バイト・データ入力手段として、 DBCS 変 換を用意する。 DBCS 変換用の DDS キーワード (IGCCNV) を使用して、ディスプレイ・ファイルに DBCS 変換を指定してください。 DBCS ワークステーションには各種の 2 バイト・データ入力手法が 用意されているので、2 バイト・データの入力に IBM i の DBCS 変換機能を使用する必要はありませ ん。
v プログラムで使用される 2 バイト文字メッセージを作成する。
v 外字処理を指定して、システムですべての 2 バイト・データが印刷および表示されるようにする。詳細 については、156ページの『拡張 2 バイト文字』を参照してください。
v 2 バイト文字を追加して定義する必要があるかどうかを判別します。文字作成ユーティリティー (CGU) を使用して、ユーザー定義文字を定義して維持することができます。 CGU については、 適用業務開発
ツール (ADTS)・セット/400: 文字作成ユーティリティー (CGU) のマニュアルを参照してください。
2 バイト・データを処理するアプリケーション・プログラムを作成する場合には、 2 バイト文字データが 必ず 2 バイト単位で処理されるように注意し、 1 つの 2 バイト文字を分割しないようにしてください。
英数字アプリケーション・プログラムの DBCS アプリケーション・プログラムへの変更:
英数字アプリケーション・プログラムで外部記述ファイルを使用している場合は、外部記述ファイルを変更 するだけで、そのアプリケーション・プログラムを DBCS アプリケーション・プログラムに変更すること ができます。
アプリケーション・プログラムを変換するには、以下のステップを実行してください。
1. 変更したい英数字ファイルのソース・ステートメントの複製コピーを作成する。
2. 英数字固定情報およびリテラルを、2 バイト文字固定情報およびリテラルに変更する。
3. ファイルの該当フィールドを混用 (O) データ・タイプに変更するか、または代替データ・タイプ (IGCALTTYP) DDS キーワードを指定することにより、 2 バイト・データと英数字データの両方をこ れらのフィールドに入れることができるようにする。 2 バイト・データにはより多くのスペースが必要 なので、フィールドの長さの変更が必要になることがあります。
4. 変換されたファイルを別のライブラリーに保管する。そのファイルには、英数字バージョンと同じ名前 を付けてください。
5. 変更されたファイルをジョブで使用する場合、そのファイルを使用するジョブのライブラリー・リスト をライブラリー・リスト変更 (CHGLIBL) コマンドを使用して変更します。これによって、英数字バー ジョンのファイルが保管されているライブラリーよりも前に DBCS ファイルが保管されているライブ ラリーが検査されます。
DBCS フォント表
DBCS フォント表には、システムで使用される 2 バイト外字のイメージが入っています。システムは、こ れらのイメージを使用して、外字を表示および印刷します。
下記の DBCS フォント表は、ユーザーが保管または復元することのできるオブジェクトです。これらのフ ォント表は、DBCS 言語バージョンの OS/400® ライセンス・プログラムと共に配布されます。
QIGC2424
外字を 24 × 24 ドット・マトリックス・イメージで表示および印刷をするのに使われる日本語 DBCS フォント表。システムはこの表を日本語ディスプレイ装置、ディスプレイ装置に接続された プリンター、 5227-1 型プリンター、および 5327-1 型プリンターで使用します。
QIGC2424C
外字を 24 × 24 ドット・マトリックス・イメージで印刷するのに使われる中国語 (繁体字) DBCS フォント表。システムはこの表を 5227-3 型プリンターおよび 5327-3 型プリンターで使用しま す。
QIGC2424K
外字を 24 × 24 ドット・マトリックス・イメージで印刷するのに使われる韓国語 DBCS フォント 表。システムはこの表を 5227-2 型プリンターおよび 5327-2 型プリンターで使用します。
QIGC2424S
外字を 24 × 24 ドット・マトリックス・イメージで印刷するのに使われる中国語 (簡体字) DBCS フォント表。システムはこの表を 5227-5 型プリンターで使用します。
QIGC3232
文字を 32 × 32 ドット・マトリックス・イメージで印刷するのに使われる日本語 DBCS フォント 表。システムはこの表を 5583 プリンターおよび 5337-1 型プリンターで使用します。
QIGC3232S
文字を 32 × 32 ドット・マトリックス・イメージで印刷するのに使われる中国語 (簡体字) DBCS フォント表。システムはこの表を 5337-R05 型プリンターで使用します。