SQLColAttributeは、ODBC Driver for Teradata定義のいくつかの列属性をFieldIdentifier引数としてサポートしています。また、SQL_COLUMN_NAMEを使用すると、名前ではなくデータベースのTITLE(存在する場合)が返されます。大半のレポート ライターにとっては、その方がより実用的であるからです。
ドライバ定義の属性値を取得するためにSQLColAttributeを使用するときは、その属性の型をBufferLength引数で指定する必要があります。また、SQLColAttributeは、その型に応じて2つのポインタのいずれかで値を返します。整数型の情報は、SQLLEN値として*NumericAttributePtrで返されます。それ以外の形式の情報は、*CharacterAttributePtrで返されます。特定の属性では使用されないポインタは、呼び出しでNULLに設定しておきます。例えば、SQL_DESC_TD_ODBC_TYPE属性の値を取得するには、次のように呼び出します。
rc = SQLColAttribute(hstmt, colno, SQL_DESC_TD_ODBC_TYPE, NULL, SQL_IS_SMALLINT, NULL, &NumAttrPtr);
次のリストでは、ODBC Driver for Teradataで定義された属性ごとに使用されるポインタを示します。
FieldIdentifier | 戻り値が返される変数 | 説明 |
---|---|---|
SQL_COLUMN_ACTIVITY_TYPE | NumericAttributePtr | 実行されるSQL文の種類を指定する整数。 |
SQL_COLUMN_COST_ESTIMATE | NumericAttributePtr | SQL文の実行のコスト見積もりが入る整数。 返される値は、時間の見積もりを秒単位で表します。 |
SQL_COLUMN_FORMAT | CharacterAttributePtr | 列と関連付けられているTeradata FORMAT句が返されます。 |
SQL_COLUMN_ACTUAL_NAME | CharacterAttributePtr | 結果列と関連付けられている名前。 SQL_COLUMN_NAMEの意味が変わったので、このFieldIdentifier値は必要です。 |
SQL_COLUMN_CHARACTER_SET | NumericAttributePtr | 列の文字セットが入っている整数。 |
SQL_COLUMN_EXPORT_WIDTH | NumericAttributePtr | 文字の列のデータベース エクスポート幅が入っている整数。 |
SQL_COLUMN_EXPORT_WIDTH_ADJ | NumericAttributePtr | 文字の列のデータベース エクスポートの幅調整が入っている整数。 |
SQL_COLUMN_EXPORT_BYTES | NumericAttributePtr | データベースが文字の列に提供するバイト数が入っている整数。 |
SQL_DESC_TD_ODBC_TYPE | NumericAttributePtr | Teradata ODBC固有のSQLデータ型コードが入っているSQLSMALLINT。 同じ標準ODBC SQL 型に複数の種類のデータベース型が含まれている場合は、Teradata ODBC固有のSQLデータ型コードを使用してデータベースの種類を識別することができます。 |
これらの属性の詳細については、SQL記述子フィールドを参照してください。