13.14 UNIX版HiRDB ODBC3.5ドライバを使用する場合の留意事項
-
Linux版 HiRDB ODBC3.5ドライバは,SQL_C_WCHAR型を扱う場合,1文字を2バイトのUTF-16LE形式で処理します。そのため,Linux版 HiRDB ODBC3.5ドライバへSQL_C_WCHAR型のデータを渡す場合には,データはUTF-16LE形式にしてください。また,以降のUTF-16はUTF-16LEと読み替えてください。
-
Unicode対応のODBC関数を使用した場合,UNIX版 HiRDB ODBC3.5ドライバは接続先のHiRDBサーバの文字コードを判定し,ドライバマネージャから受け取った文字列をUTF-16形式からHiRDBサーバの文字コードに変換します。また,HiRDBサーバから受け取ったデータはHiRDBサーバの文字コードからUTF-16形式に変換し,ドライバマネージャに返却します。ただし,クライアント環境定義PDCLTCNVMODEを指定した場合は,接続先のHiRDBサーバの文字コードに関係なくPDCLTCNVMODEの指定に従って文字コード変換します。Unicode対応のODBC関数を使用する場合に使用できる文字コードの組み合わせと変換される文字コード種別を次の表に示します。
表13‒31 Unicode対応のODBC関数を使用する場合に使用できる文字コードの組み合わせと変換される文字コード種別 項番
クライアント環境定義PDCLTCNVMODEの指定
HiRDBサーバの文字コード種別
変換される文字コード種別
ODBC環境定義ODBCHARSETを指定しない場合
ODBC環境定義ODBCHARSETを指定した場合
1
UJIS
UJIS2
UJIS
UTF-16←→SJIS
(クライアントライブラリでSJIS←→UJIS変換)
2
TF8
UTF8MS
UTF8_TXT
UTF8MS_TXT
UTF8_EX
UTF8_EX2
UTF-8
UTF-16←→SJIS
(クライアントライブラリでSJIS←→UTF-8変換)
3
UCS2_UJIS
UCS2_UJIS2
UJIS
ODBCドライバ内はUnicodeで扱う
(クライアントライブラリでUTF-16←→UJIS変換)
4
UCS2_UTF8
UTF-8
ODBCドライバ内はUnicodeで扱う
(クライアントライブラリでUTF-16←→UTF-8変換)
5
指定なし
SJIS
UTF-16←→SJIS
UTF-16←→ODBCHARSETに指定した文字セット
6
UJIS
UTF-16←→EUC-JISX0213(EUC-JISX0213を使用できない環境の場合はEUC-JP)
UTF-16←→ODBCHARSETに指定した文字セット
7
UTF-8
UTF-16←→UTF-8
UTF-16←→ODBCHARSETに指定した文字セット
8
上記以外
未サポート
-
Unicodeに対応していないODBC関数を使用する場合,UNIX版 HiRDB ODBC3.5ドライバは,引数として渡された文字列に対して文字コード変換をしません。この場合は,UAPの実行環境と接続先のHiRDBサーバの文字コードを合わせる必要があります。ただし,クライアント環境定義PDCLTCNVMODEを指定した場合は,PDCLTCNVMODEの指定に従って文字コード変換します。
-
UNIX版 HiRDB ODBC3.5ドライバでは,Unicode対応のODBC関数の接続関数を使用した場合,データソース名は実行環境のLANG環境変数の文字コードに変換します。したがって,実行環境のLANG環境変数と登録されているデータソース名の文字コードが異なる場合は,ASCII文字以外のデータソース名を読み取れないことがあります。
-
UNIX版 HiRDB ODBC3.5ドライバでは,ダイアログボックスの表示をサポートしていません。そのため,HiRDBサーバと接続する場合に,SQL_DRIVER_NOPROMPT以外を指定してSQLDriverConnectを呼び出した場合,SQL_ERRORを返します。
-
UNIX版 HiRDB ODBC3.5ドライバは,unixODBCが提供するGUIツールODBC Config を使用したデータソースの登録をサポートしていません。データソースを登録する際は,「インストール手順(UNIX版の場合)」に従い,登録する必要があります。