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

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

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

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

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