適用対象: ○SQL Server ○Azure SQL Database ○Azure SQL Data Warehouse ○Parallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

実行されるステートメントをSQL ServerSQL ServerNative Client ODBC ドライバーは結果セット内の列を示すサーバー クエリを実行する必要はありません。For executed statements, the SQL ServerSQL Server Native Client ODBC driver does not need to query the server to describe columns in a result set. この場合、 SQLDescribeColサーバーとのやり取りは行われません。In this case, SQLDescribeCol does not cause a server roundtrip. ようなSQLColAttributeSQLNumResultColsを呼び出すと、 SQLDescribeCol準備されていても実行されていないステートメントには、サーバーとのやり取りが生成されます。Like SQLColAttributeandSQLNumResultCols, calling SQLDescribeCol on prepared but not executed statements generates a server roundtrip.

1 つの Transact-SQLTransact-SQL ステートメントまたはステートメント バッチから複数の結果行セットが返される場合、別のテーブルの列を序数で参照したり、結果セット内の別の列を参照することができます。When a Transact-SQLTransact-SQL statement or statement batch returns multiple result row sets, it is possible for a column, referenced by ordinal, to originate in a separate table or to refer to an entirely different column in the result set. SQLDescribeColセットごとに呼び出す必要があります。SQLDescribeCol should be called for each set. 結果セットが変更されると、アプリケーションでは、行の結果をフェッチする前に、データ値を再バインドする必要があります。When the result set changes, the application should rebind data values prior to fetching row results. セットを返す複数の結果の処理の詳細についてを参照してくださいSQLMoreResultsします。For more information about handling multiple result set returns, see SQLMoreResults.

準備された SQL ステートメントのバッチによって複数の結果セットが生成されるときは、最初の結果セットの列属性のみが報告されます。Column attributes are reported for only the first result set when multiple result sets are generated by a prepared batch of SQL statements.

大きな値のデータ型で返される値DataTypePtr SQL_VARCHAR、SQL_VARBINARY、SQL_NVARCHAR のいずれかです。For large value data types, the value returned in DataTypePtr is SQL_VARCHAR, SQL_VARBINARY, or SQL_NVARCHAR. 値で SQL_SS_LENGTH_UNLIMITED ColumnSizePtrサイズが「無制限」であることを示します。A value of SQL_SS_LENGTH_UNLIMITED in ColumnSizePtr indicates that the size is "unlimited".

以降では、データベース エンジンの機能強化SQL Server 2012 (11.x)SQL Server 2012 (11.x)期待どおりの結果のより正確な記述を取得する SQLDescribeCol を許可します。Improvements in the database engine starting with SQL Server 2012 (11.x)SQL Server 2012 (11.x) allow SQLDescribeCol to obtain more accurate descriptions of the expected results. これらのより正確な結果の以前のバージョンの SQLDescribeCol によって返される値が異なる場合がありますSQL ServerSQL Serverします。These more accurate results may differ from the values returned by SQLDescribeCol in previous versions of SQL ServerSQL Server. 詳細については、次を参照してください。メタデータ検出します。For more information, see Metadata Discovery.

SQLDescribeCol による機能強化された日付と時刻のサポートSQLDescribeCol Support for Enhanced Date and Time Features

日付型または時刻型に対して返される値を次に示します。The values returned for date/time types are as follows:

DataTypePtrDataTypePtr ColumnSizePtrColumnSizePtr DecimalDigitsPtrDecimalDigitsPtr
smalldatetimesmalldatetime SQL_TYPE_TIMESTAMPSQL_TYPE_TIMESTAMP 1616 00
timetime SQL_SS_TIME2SQL_SS_TIME2 8, 10..168, 10..16 0..70..7
datetime2datetime2 SQL_TYPE_TIMESTAMPSQL_TYPE_TIMESTAMP 19, 21..2719, 21..27 0..70..7
datetimeoffsetdatetimeoffset SQL_SS_TIMESTAMPOFFSETSQL_SS_TIMESTAMPOFFSET 26, 28..3426, 28..34 0..70..7

詳細については、次を参照してください。日付と時刻の強化(ODBC)します。For more information, see Date and Time Improvements (ODBC).

SQLDescribeCol による大きな CLR UDT のサポートSQLDescribeCol Support for Large CLR UDTs

SQLDescribeCol大きなの CLR ユーザー定義型 (Udt) をサポートしています。SQLDescribeCol supports large CLR user-defined types (UDTs). 詳細については、次を参照してください。 Large CLR User-Defined 型(ODBC)します。For more information, see Large CLR User-Defined Types (ODBC).

参照See Also

SQLDescribeCol 関数 SQLDescribeCol Function
ODBC API 実装の詳細ODBC API Implementation Details