次の表は、拡張レベル関数とその目的の一覧です。
関数名 | 目的 |
---|---|
SQLBindCol | 結果セット内の各列にアプリケーション データ バッファをバインドします。 |
SQLBindParameter | SQL文中のパラメータ マーカーにデータ バッファをバインドします。 SQLBindParameterは、パラメータ長(pcbValue)がSQL_NULL_DATAに等しい場合、パラメータ データ(rgbValue)のNULLポインタを受け入れます。SQLBindParameterがサポートするパラメータの最大数は256です。 ストアド プロシージャには、最大で1024個のパラメータを含めることができます。ただし、データベースはこの数のパラメータを格納しサポートするものの、ODBC Driver for TeradataにはSQLBindParameterの制約があるため、257個以上のパラメータを含むストアド プロシージャを実行できません。 SQL_DATA_AT_EXECでのバインド展開に依存しているプロシージャ(マクロ)のデフォルト パラメータ(pcbValue= SQL_DEFAULT_PARAM)は、インプリメントされていません。 SQLBindParameterの引数ColumnSizeは、次のいずれかに設定する必要があります。
|
SQLBrowseConnect | データ ソースへの接続に必要な属性と属性値を検出します。 |
SQLCancel | ステートメントの処理を取り消します。 |
SQLColumnPrivileges | 1つ以上のテーブルの列および関連する権限のリストを返します。バージョン2.xのSQLColumnPrivilegeに代わって、コア レベル ドライバに組み込まれているレベル2の機能です。 ANSIでは列レベルの権限が定義されているため、ODBC Driver for Teradataは、テーブルに関連付けられた列権限を返します。テーブルのすべての列に特定の権限がある場合には、ODBC Driver for Teradataは、列名として値ALLを返します。 |
SQLColumns | 1つ以上のテーブルにある列名のリストを返します。 SQLColumnsは、最大22列のテーブルやビューの列情報を返します。SQLColumns()を使用するためには、対象となる(複数の)テーブルに対するSELECT権限が必要です。 |
SQLDataSources | 使用可能なデータ ソースに関する情報を返します。 |
SQLDescribeCol | 結果セット内の列について、列名、タイプ、列サイズ、桁数と、NULL可能性を返します。列0のブックマーク メタ データの抽出はサポートされていません。 デフォルトでは、SQLDescribeColおよびSQLColAttributeは、データベースの列タイトルの代わりに列名を返します。アプリケーションで、ODBC Driver for Teradataが実際の列名ではなく列タイトルを返すようにするには、Teradata ODBC Driver Options(Teradata ODBCドライバ オプション)ダイアログ ボックスで、使用するDSNのUse Column Names(列名を使用する)オプションを選択解除するか、"DontUseTitles=No"を設定する(UNIX OSの場合)必要があります。 実際の列名の代わりに列タイトルを返すと、Crystal Reportsなどの一部のアプリケーションで問題が発生することがあります。これは、そのアプリケーションが、列タイトルではなく列名が返されることを想定しているためです。 SQLDescribeColおよびSQLColAttributeは、INTEGER FORMAT 99:99:99またはFLOAT FORMAT 99:99:99として定義されている結果セットの列に対してSQL型のSQL_TIMEを返します。これらの列は、SQL_C_TIMEデータか、その他の時刻データ変換可能な形式に取り込まれます。 SQLColAttributeは、列のDBC FORMATに、FORMAT ‘$$$,$$9.99’というようにドル記号が含まれている場合に、その列が通貨タイプであることを示します。この情報は、アプリケーションが結果データの形式設定をする場合に役立ちます。 |
SQLDescribeParam | EnableExtendedStmtInfo機能が有効なときに、ODBC Driver for Teradataによってサポートされます。 SQLDescribeParamは、作成したSQL文に関連付けられているパラメータ マーカーに対応する列または式のメタデータを返します。このメタデータは、インプリメント パラメータ記述(IPD)のフィールドでも使用できます。SQLDescribeParamの詳細については、<ODBC仕様>を参照してください。 |
SQLDisconnect | 接続ハンドルに関連する接続をクローズします。 |
SQLDriverConnect | 接続文字列を使用して特定のドライバに接続するか、ドライバ マネージャとODBC Driver for Teradataに対して接続ダイアログ ボックスを表示するよう要求します。 |
SQLDrivers | インストールされているドライバとその属性のリストを返します。 |
SQLExecDirect | あらかじめ準備されたものではないステートメントを実行します。 |
SQLExecute | あらかじめ準備してあったステートメントを実行します。 |
SQLFetch | 次の行データ セットを結果セットから取り出し、バインドされた列すべてのデータを返します。 |
SQLForeignKeys | テーブルに外部キーを構成する列がある場合、列名のリストを返します。これはレベル2の実装です。 |
SQLGetCursorname | ステートメントに関連するカーソル名を返します。 |
SQLGetData | 結果セットの1行分の列をすべて、または一部を返します。 |
SQLGetFunctions | サポートされるODBC Driver for Teradata API関数に関する情報を返します。 |
SQLGetInfo | 接続に関連するODBC Driver for Teradataおよびデータ ソースに関する一般情報を返します。 Teradata Database14.0以降に接続している場合は、SQLGetInfo(SQL_KEYWORDS)が使用されているクエリーを実行すると、キーワードのリストがデータベースから返されます。そのため、以前のリリースよりも実行時間が長くなることがあります。
|
SQLGetTypeInfo | データ ソースがサポートするデータ型に関する情報を返します。さらに、ドライバ型を表わす値を返します。 |
SQLMoreResults | 入手可能な結果セットが他にもあるかどうかを識別します。結果セットがある場合、SQLMoreResultsは次の結果セットのための処理を初期化します。これはレベル1の関数です。 |
SQLNativeSql | ODBC Driver for Teradataがコード変換するSQL文のテキストを返します。 |
SQLNumParams | SQL文中のパラメータの数を返します。 |
SQLNumResultCols | 結果セット内の列数を返します。 |
SQLParamData | SQLPutDataがステートメントの実行時に使用するパラメータ データを供給します。 |
SQLPrepare | 実行するためにSQL文を準備します。 |
SQLPrimaryKeys | テーブルのプライマリ キーを構成する列名を返します。 |
SQLProcedureColumns | 入力/出力パラメータのリスト、ドライバ型、およびプロシージャの結果セットを構成する列を返します。 |
SQLProcedures | データ ソース内のプロシージャ名のリストを返します。 |
SQLPutData | パラメータのデータ値の一部またはすべてを送信します。SQLPutData()は、パラメータ データをいくつかにまとめて配置できません。 |
SQLRowCount | UPDATE文、INSERT文、DELETE文によって影響を受ける行数を返します。 SQLExecuteまたはSQLExecDirectの実行後、SQLRowCountを呼び出して、SELECT文を含むあらゆるタイプのSQL文についてのDBCアクティビティ カウントを取得できます。 移植性を考えると、アプリケーションがこの動作に依存することは望ましくありません。その他のODBCドライバは、SELECT文の後に、行数ではなく-1を返す場合があるからです。 |
SQLSetCursorName | アクティブ ステートメントにカーソル名を関連付けます。 |
SQLSpecialColumns | 指定されたテーブル内の行を一意に識別する最適な列セットか、行内のいずれかの値が更新された場合に自動更新される列に関する情報を返します。 SQLSpecialColumns()が正しく機能するのは、ビューが単一のテーブルをベースにして、その表に固有インデックスが1つしかない場合に限ります。 SQLSpecialColumns()は、テーブルで正しく動作します。 |
SQLStatistics | 単一のテーブルに関する統計値およびテーブルに関連付けられているインデックス リストを返します。 SQLStatistics()は、テーブルのインデックスに関する情報を取得し、インデックスのカーディナリティ統計値を提供します。ただし、ページ数は推測値となります。基本テーブルの場合には正しいページ数が返されます(1ページは4096バイトと仮定)が、ビューの場合は0に設定されます。 SQLStatistics()は、SQL_ENSUREが設定されている場合に限り、テーブル自体の正確なカーディナリティ統計値を返します。それ以外の場合は、基本テーブルのカーディナリティは、テーブルにある任意のインデックスの最大カーディナリティ値に設定されます(固有インデックスがある場合は、通常この値は正確です)。 ドライバがテーブルのカーディナリティ値を正確に取得するには、SELECT COUNT(*) FROM tableを指定して実行するしかないため、SQL_ENSUREはかなり遅くなります。 パラメータ値としてSQL_ENSUREが使用された関数SQLStatistics()が呼び出された場合、この関数は小さいテーブルに限り正確です。 大きなテーブルの場合、SQL_ENSUREを使用すると、そのテーブルを長期間使用できなくなることがあるので、代わりにSQL_QUICKメソッドを使うことで、大半のアプリケーションに適したカーディナリティとページ数の概算値が得られます。 Windowsでは、SQLStatistics()は、指定したテーブルのインデックス情報を返します。このため、テーブルのビューを使って読み取りまたは更新ができます。インデックス生成用に指定されているODBC文法準拠のユーザー定義インデックス名が、レジストリ(IndexName0-9)のDSNエントリで定義されている場合に、SQLStatistics()によってインデックス名として返されるようになりました。ODBC形式の名前付きインデックスはODBC Driver for Teradata 16.20で廃止されました。 次の場合は、Teradataのインデックス名が返されます。
例えば、MyIndexというテーブルのインデックスを作成する際に、ODBC文法の構文に従って、MyTableというインデックス名が使用されています。 Teradata内部でテーブルのインデックスとしてMyTable001を作成しましたが、SQLStatistics()は、MyTable001ではなくMyIndexをインデックス名として返しました。これは、DSN登録項に、MyTableのこのインデックス名が含まれているからです。それ以外のPCの場合は、MyTable001がインデックス名として返されます。 |
SQLTablePrivileges | テーブルのリストと、各テーブルに関連付けられている権限を返します。これはレベル2の機能です。 ODBC Driver for Teradataは、指定されたhstmtに関する情報を結果セットとして返します。 結果セットの内容は次のとおりです。
|
SQLTables | データ ソース内のテーブル名のリストを返します。 SQLTablesは、その表示を制限するために、VIEW、TABLE、およびSYSTEM TABLEタイプを受け入れます。また、DBCテーブルやビューは、ODBCアプリケーションによる処理を簡単にするために、DBCとしてログインする場合を除き、SYSTEM TABLEタイプとして返されます。ユーザーDBCとしてログインした場合は、DBCテーブルはTABLEタイプとして返されます。 'GLOBAL TEMPORARY'または'TEMPORARY'をテーブル タイプとして指定できます。揮発テーブルに関する情報はVantageのデータ ディクショナリに保持されていないため、ODBC Driver for Teradataはその情報を提供できません。 |