SQLColAttributeの呼び出し時 - 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

ANSIアプリケーション(UNICODEを定義せずにコンパイルされたもの)に対して、UNIX OS上のドライバ マネージャは、以下のような変換は実行しません。

  • SQLColAttribute呼び出しをODBC Driver for TeradataのSQLColAttributeW呼び出しにする変換
  • 出力パラメータをUTF-8からアプリケーション コード ページに戻す変換

このため、SQLColAttributeからの出力パラメータは、ドライバが使用する内部文字セットでANSIアプリケーションに返送されます。内部文字セットがアプリケーション コード ページと異なる場合、アプリケーションは、SQLColAttributeから返されたデータを、予測されたものとは異なる文字セットで受信することになります。

このような状態は、ISO 8859-1を使用するANSIアプリケーションが非ASCIIメタデータ(デンマーク語の文字が含まれる列名など)を要求した際にセッション文字セットがUTF-8である場合などに、問題となります。アプリケーションは、返された列名をUTF-8で受け取ります。一般に、ANSIアプリケーションがUnicodeセッション文字セットを使用している場合、そのアプリケーションは、アプリケーション コード ページに関係なく、SQLColAttributeから返されるデータをUTF-8で受け取ることになります。

この問題を回避するためには、古いSQLColAttributes関数(末尾に's'が付きます)を使用してください。