Unicode ODBC関数用の長さ引数 - ODBC Driver for Teradata

ODBC Driver for Teradata® ユーザー ガイド

Product
ODBC Driver for Teradata
Release Number
16.20
Published
2018年10月
Language
日本語
Last Update
2019-02-12
dita:mapPath
ja-JP/fxv1527114222338.ditamap
dita:ditavalPath
ja-JP/fxv1527114222338.ditaval
dita:id
B035-2526
Product Category
Teradata Tools and Utilities
多くのODBCインターフェース関数では、文字列入出力値の長さを指定する文字列引数が必要です。一部の関数では、これらの長さ(バイト単位)を指定するためのUnicode引数が必要ですが、別の関数では、文字数として指定される長さが必要です。これは、プラットフォームとUnicodeエンコーディングで変わります。
  • UTF16/UTF32でエンコードされたUnicode文字列:Microsoft ODBC 3.0 Programmer's Referenceの第17章“Programming Considerations”にあるUnicodeセクションから下記に引用した段落では、Unicode関数の長さ引数の仕様に関する厳格な規則について説明されています。

    「Unicode関数が常に文字列を受け取るか返す場合、長さ引数には文字数が渡されます。サーバー データの長さを返す関数の場合、表示サイズおよび精度は、文字数で記述されます。長さ(データの転送サイズ)を文字列データとしても非文字列データとしても参照する場合、長さはオクテット長で記述されます。例えば、SQLGetInfoWは長さをバイト数で受け取りますが、SQLExecDirectWでは文字数が使用されます。」

  • UNIXシステムでのUTF8エンコードのUnicode文字列:UTF8は、UNIXシステムで動作するODBCアプリケーションのデフォルトUnicodeエンコーディングです。ODBCインターフェース関数へのすべての文字列長引数は、バイト数として指定する必要があります。