SQLColAttributeSQLColAttribute

適用対象: ○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

使用することができますSQLColAttribute準備または実行された ODBC ステートメントの結果セット列の属性を取得します。You can use SQLColAttribute to retrieve an attribute of a result set column for either prepared or executed ODBC statements. 呼び出すSQLColAttributeで準備されたステートメント原因へのラウンドト リップSQL ServerSQL Serverします。Calling SQLColAttribute on prepared statements causes a roundtrip to SQL ServerSQL Server. SQL ServerSQL Server Native Client ODBC ドライバーは、呼び出すので、ステートメントの実行の一部として結果セット列のデータを受信SQLColAttributeの完了後SQLExecuteまたはSQLExecDirectサーバーとのやり取りに関与しません。The SQL ServerSQL Server Native Client ODBC driver receives result set column data as part of statement execution, so calling SQLColAttribute after the completion of SQLExecute or SQLExecDirect does not involve a server roundtrip.

注意

すべての SQL ServerSQL Server の結果セットで、ODBC 列の ID 属性は使用できません。ODBC column identifier attributes are not available on all SQL ServerSQL Server result sets.

フィールド IDField identifier 説明Description
SQL_COLUMN_TABLE_NAMESQL_COLUMN_TABLE_NAME サーバー カーソルを生成するステートメントから取得した結果セットで使用できます。または、FOR BROWSE 句を含む実行済みの SELECT ステートメントで使用できます。Available on result sets retrieved from statements that generate server cursors or on executed SELECT statements containing a FOR BROWSE clause.
SQL_DESC_BASE_COLUMN_NAMESQL_DESC_BASE_COLUMN_NAME サーバー カーソルを生成するステートメントから取得した結果セットで使用できます。または、FOR BROWSE 句を含む実行済みの SELECT ステートメントで使用できます。Available on result sets retrieved from statements that generate server cursors or on executed SELECT statements containing a FOR BROWSE clause.
SQL_DESC_BASE_TABLE_NAMESQL_DESC_BASE_TABLE_NAME サーバー カーソルを生成するステートメントから取得した結果セットで使用できます。または、FOR BROWSE 句を含む実行済みの SELECT ステートメントで使用できます。Available on result sets retrieved from statements that generate server cursors or on executed SELECT statements containing a FOR BROWSE clause.
SQL_DESC_CATALOG_NAMESQL_DESC_CATALOG_NAME データベース名。Database name. サーバー カーソルを生成するステートメントから取得した結果セットで使用できます。または、FOR BROWSE 句を含む実行済みの SELECT ステートメントで使用できます。Available on result sets retrieved from statements that generate server cursors or on executed SELECT statements containing a FOR BROWSE clause.
SQL_DESC_LABELSQL_DESC_LABEL すべての結果セットで使用できます。Available on all result sets. 値は、SQL_DESC_NAME フィールドの値と等しくなります。The value is identical to the value of the SQL_DESC_NAME field.

列が式の結果か、式にラベル割り当てが含まれていない場合にのみ、フィールド長が 0 (ゼロ) になります。The field is zero length only if a column is the result of an expression and the expression does not contain a label assignment.
SQL_DESC_NAMESQL_DESC_NAME すべての結果セットで使用できます。Available on all result sets. 値は、SQL_DESC_LABEL フィールドの値と等しくなります。The value is identical to the value of the SQL_DESC_LABEL field.

列が式の結果か、式にラベル割り当てが含まれていない場合にのみ、フィールド長が 0 (ゼロ) になります。The field is zero length only if a column is the result of an expression and the expression does not contain a label assignment.
SQL_DESC_SCHEMA_NAMESQL_DESC_SCHEMA_NAME 所有者名。Owner name. サーバー カーソルを生成するステートメントから取得した結果セットで使用できます。または、FOR BROWSE 句を含む実行済みの SELECT ステートメントで使用できます。Available on result sets retrieved from statements that generate server cursors or on executed SELECT statements containing a FOR BROWSE clause.

SELECT ステートメントの列に所有者名を指定した場合にのみ使用できます。Available only if the owner name is specified for the column in the SELECT statement.
SQL_DESC_TABLE_NAMESQL_DESC_TABLE_NAME サーバー カーソルを生成するステートメントから取得した結果セットで使用できます。または、FOR BROWSE 句を含む実行済みの SELECT ステートメントで使用できます。Available on result sets retrieved from statements that generate server cursors or on executed SELECT statements containing a FOR BROWSE clause.
SQL_DESC_UNNAMEDSQL_DESC_UNNAMED 結果セット内にあるすべての列に対する SQL_NAMED が返されます。ただしこれは、式の一部にラベル割り当てが含まれておらず、列がこの式の結果ではない場合に限ります。SQL_NAMED for all columns in a result set unless a column is the result of an expression that does not contain a label assignment as part of the expression. SQL_DESC_UNNAMED が SQL_UNNAMED を返すときは、すべての ODBC 列の ID 属性には、その列に対して長さゼロの文字列が含まれます。When SQL_DESC_UNNAMED returns SQL_UNNAMED, all ODBC column identifier attributes contain zero length strings for the column.

SQL ServerSQL Server Native Client ODBC ドライバーでは、SET FMTONLY ステートメントを使用して、サーバーのオーバーヘッドを減らすときSQLColAttributeが呼び出されると準備されたステートメントが実行されていません。Native Client ODBC driver uses the SET FMTONLY statement to reduce server overhead when SQLColAttribute is called for prepared but unexecuted statements.

大きな値型、 SQLColAttributeは次の値を返します。For large value types, SQLColAttribute will return the following values:

フィールド IDField identifier 変更の説明Description of change
SQL_DESC_DISPLAY_SIZESQL_DESC_DISPLAY_SIZE 列のデータを表示する場合に必要となる最大文字数です。This is the maximum number of characters required to display data from the column. 大きな値型の列の場合、返される値は SQL_SS_LENGTH_UNLIMITED です。For large value type columns, the value returned is SQL_SS_LENGTH_UNLIMITED.
SQL_DESC_LENGTHSQL_DESC_LENGTH 結果セット内の列の実際の長さを返します。Returns the actual length of the column in the result set. 大きな値型の列の場合、返される値は SQL_SS_LENGTH_UNLIMITED です。For large value type columns, the value returned is SQL_SS_LENGTH_UNLIMITED.
SQL_DESC_OCTET_LENGTHSQL_DESC_OCTET_LENGTH 大きな値型の列の最大長を返します。Returns the maximum length of a large value type column. 無制限のサイズを示す場合、SQL_SS_LENGTH_UNLIMITED を使用します。SQL_SS_LENGTH_UNLIMITED is used to indicate unlimited size.
SQL_DESC_PRECISIONSQL_DESC_PRECISION 大きな値型の列の場合、値 SQL_SS_LENGTH_UNLIMITED を返します。Returns the value SQL_SS_LENGTH_UNLIMITED for large value type columns.
SQL_DESC_TYPESQL_DESC_TYPE 大きな値型の場合、SQL_VARCHAR、SQL_WVARCHAR、および SQL_VARBINARY を返します。Returns SQL_VARCHAR, SQL_WVARCHAR, and SQL_VARBINARY for large value types.
SQL_DESC_TYPE_NAMESQL_DESC_TYPE_NAME 大きな値型の場合、"varchar"、"varbinary"、"nvarchar" を返します。Returns "varchar", "varbinary", "nvarchar" for the large value types.

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

次の列属性は、拡張機能によって公開されている、 SQL ServerSQL Server Native Client ODBC ドライバー。The following column attributes are extensions exposed by the SQL ServerSQL Server Native Client ODBC driver. SQL ServerSQL Server Native Client ODBC ドライバーは、すべての値を返します、 NumericAttrPtrパラメーター。The SQL ServerSQL Server Native Client ODBC driver returns all values in the NumericAttrPtr parameter. WORD 配列へのポインターである SQL_CA_SS_COMPUTE_BYLIST を除き、SDWORD 型 (符号付き long 型) として値が返されます。The values are returned as SDWORD (signed long) except SQL_CA_SS_COMPUTE_BYLIST, which is a pointer to a WORD array.

フィールド IDField identifier 返される値Value returned
SQL_CA_SS_COLUMN_HIDDEN*SQL_CA_SS_COLUMN_HIDDEN* 参照される列が、FOR BROWSE 句を含む Transact-SQL SELECT ステートメントをサポートするために作成された非表示の主キーの一部である場合は、TRUE になります。TRUE if the column referenced is part of a hidden primary key created to support a Transact-SQL SELECT statement containing FOR BROWSE.
SQL_CA_SS_COLUMN_IDSQL_CA_SS_COLUMN_ID 現在の Transact-SQL SELECT ステートメント内にある COMPUTE 句の結果列の序数位置。Ordinal position of a COMPUTE clause result column within the current Transact-SQL SELECT statement.
SQL_CA_SS_COLUMN_KEY*SQL_CA_SS_COLUMN_KEY* 参照される列が行の主キーの一部で、Transact-SQL SELECT ステートメントに FOR BROWSE 句が含まれる場合は、TRUE になります。TRUE if the column referenced is part of a primary key for the row and the Transact-SQL SELECT statement contains FOR BROWSE.
SQL_CA_SS_COLUMN_OPSQL_CA_SS_COLUMN_OP COMPUTE 句列の値に関連する集計演算子を指定する整数。Integer specifying the aggregate operator responsible for the value in a COMPUTE clause column. 整数値の定義は sqlncli.h にあります。Definitions of the integer values are in sqlncli.h.
SQL_CA_SS_COLUMN_ORDERSQL_CA_SS_COLUMN_ORDER ODBC または Transact-SQL SELECT ステートメントの ORDER BY 句内にある列の序数位置。Ordinal position of the column within an ODBC or Transact-SQL SELECT statement's ORDER BY clause.
SQL_CA_SS_COLUMN_SIZESQL_CA_SS_COLUMN_SIZE 列から取得したデータ値を SQL_C_BINARY 変数にバインドするのに必要な、バイト単位の最大長。Maximum length, in bytes, required to bind a data value retrieved from the column to a SQL_C_BINARY variable.
SQL_CA_SS_COLUMN_SSTYPESQL_CA_SS_COLUMN_SSTYPE SQL Server の列に格納されたデータのネイティブ データ型。Native data type of data stored in the SQL Server column. 型値の定義は sqlncli.h にあります。Definitions of the type values are in sqlncli.h.
SQL_CA_SS_COLUMN_UTYPESQL_CA_SS_COLUMN_UTYPE SQL Server における列のユーザー定義データ型に関する基本データ型。Base data type of the SQL Server column's user-defined data type. 型値の定義は sqlncli.h にあります。Definitions of the type values are in sqlncli.h.
SQL_CA_SS_COLUMN_VARYLENSQL_CA_SS_COLUMN_VARYLEN 列のデータが可変長の場合は TRUE、それ以外の場合は FALSE です。TRUE if the column's data can vary in length, FALSE otherwise.
SQL_CA_SS_COMPUTE_BYLISTSQL_CA_SS_COMPUTE_BYLIST COMPUTE 句の BY 句で使用される列を指定する、WORD 型 (符号なし short 型) の配列へのポインター。Pointer to an array of WORD (unsigned short) specifying the columns used in the BY phrase of a COMPUTE clause. COMPUTE 句に BY が指定されていない場合、NULL ポインターを返します。If the COMPUTE clause does not specify a BY phrase, a NULL pointer is returned.

配列の最初の要素には、BY リスト列の数が含まれます。The first element of the array contains the count of BY list columns. もう 1 つの要素は列序数です。Additional elements are the column ordinals.
SQL_CA_SS_COMPUTE_IDSQL_CA_SS_COMPUTE_ID computeidの現在の TRANSACT-SQL SELECT ステートメントの COMPUTE 句の結果である行のできます。computeid of a row that is the result of a COMPUTE clause in the current Transact-SQL SELECT statement.
SQL_CA_SS_NUM_COMPUTESSQL_CA_SS_NUM_COMPUTES 現在の Transact-SQL SELECT ステートメントで指定されている COMPUTE 句の数。Number of COMPUTE clauses specified in the current Transact-SQL SELECT statement.
SQL_CA_SS_NUM_ORDERSSQL_CA_SS_NUM_ORDERS ODBC または Transact-SQL SELECT ステートメントの ORDER BY 句で指定されている列の数。Number of columns specified in an ODBC or Transact-SQL SELECT statement's ORDER BY clause.

* ステートメント属性 SQL_SOPT_SS_HIDDEN_COLUMNS を SQL_HC_ON に設定されている場合は使用できます。* Available if statement attribute SQL_SOPT_SS_HIDDEN_COLUMNS is set to SQL_HC_ON.

SQL Server 2005 (9.x)SQL Server 2005 (9.x) XML スキーマ コレクションの名前、スキーマ名、およびカタログの名前をそれぞれ示す追加情報を提供するドライバー固有の記述子フィールドが導入されました。introduced driver-specific descriptor fields to provide additional information to denote the XML schema collection name, the schema name, and the catalog name, respectively. これらのプロパティでは、英数字以外の文字が含まれる場合でも、引用符やエスケープ文字は必要ありません。These properties do not require quotation marks or an escape character if they contain non-alphanumeric characters. 次の表では、追加された新しい記述子フィールドについて説明します。The following table lists these new descriptor fields:

列名Column name Type 説明Description
SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAMESQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME CharacterAttributePtrCharacterAttributePtr XML スキーマ コレクション名が定義されているカタログの名前です。The name of the catalog where an XML schema collection name is defined. カタログ名が見つからない場合は、この変数に空文字列が含まれます。If the catalog name cannot be found, then this variable contains an empty string.

この情報は、IRD の SQL_DESC_SS_XML_SCHEMACOLLECTION_CATALOG_NAME レコード フィールドから返されます。このレコード フィールドは読み取りと書き込みが可能なフィールドです。This information is returned from the SQL_DESC_SS_XML_SCHEMACOLLECTION_CATALOG_NAME record field of the IRD, which is a read-write field.
SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAM ESQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAM E CharacterAttributePtrCharacterAttributePtr XML スキーマ コレクション名が定義されているスキーマの名前です。The name of the schema where an XML schema collection name is defined. スキーマ名が見つからない場合は、この変数に空文字列が含まれます。If the schema name cannot be found, then this variable contains an empty string.

この情報は、IRD の SQL_DESC_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME レコード フィールドから返されます。このレコード フィールドは読み取りと書き込み可能なフィールドです。This information is returned from the SQL_DESC_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME record field of the IRD, which is a read-write field.
SQL_CA_SS_XML_SCHEMACOLLECTION_NAMESQL_CA_SS_XML_SCHEMACOLLECTION_NAME CharacterAttributePtrCharacterAttributePtr XML スキーマ コレクションの名前です。The name of an XML schema collection. 名前が見つからない場合は、この変数に空文字列が含まれます。If the name cannot be found, then this variable contains an empty string.

この情報は、IRD の SQL_DESC_SS_XML_SCHEMACOLLECTION_NAME レコード フィールドから返されます。このレコード フィールドは読み取りと書き込み可能なフィールドです。This information is returned from the SQL_DESC_SS_XML_SCHEMACOLLECTION_NAME record field of the IRD, which is a read-write field.

また、SQL Server 2005 (9.x)SQL Server 2005 (9.x) では、結果セットのユーザー定義型 (UDT) 列に関する追加情報、またはストアド プロシージャやパラメーター化クエリの UDT パラメーターに関する追加情報を提供するために、ドライバー固有の新しい記述子フィールドが導入されました。Also, SQL Server 2005 (9.x)SQL Server 2005 (9.x) introduced new driver-specific descriptor fields to provide additional information for either a user-defined type (UDT) column of a result set or a UDT parameter of a stored procedure or parameterized query. これらのプロパティでは、英数字以外の文字が含まれる場合でも、引用符やエスケープ文字は必要ありません。These properties do not require quotation marks or an escape character if they contain non-alphanumeric characters. 次の表では、追加された新しい記述子フィールドについて説明します。The following table lists these new descriptor fields:

列名Column Name Type 説明Description
SQL_CA_SS_UDT_CATALOG_NAMESQL_CA_SS_UDT_CATALOG_NAME CharacterAttributePtrCharacterAttributePtr UDT を含むカタログの名前。The name of the catalog containing the UDT.
SQL_CA_SS_UDT_SCHEMA_NAMESQL_CA_SS_UDT_SCHEMA_NAME CharacterAttributePtrCharacterAttributePtr UDT を含むスキーマの名前。The name of the schema containing the UDT.
SQL_CA_SS_UDT_TYPE_NAMESQL_CA_SS_UDT_TYPE_NAME CharacterAttributePtrCharacterAttributePtr UDT の名前The name of the UDT.
SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAMESQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME CharacterAttributePtrCharacterAttributePtr UDT のアセンブリ修飾名。The assembly qualified name of the UDT.

UDT の名前を示すために、既存の記述子フィールド ID の SQL_DESC_TYPE_NAME が使用されます。The existing descriptor field identifier SQL_DESC_TYPE_NAME is used to indicate the name of the UDT. UDT 型の列の SQL_DESC_TYPE フィールドは SQL_SS_UDT です。The SQL_DESC_TYPE field for a UDT type column is SQL_SS_UDT.

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

日付/時刻型に対して返される値、「情報が返されます IRD フィールドで」のセクションを参照してください。パラメーターと結果のメタデータします。For the values returned for date/time types, see the "Information Returned in IRD Fields" section in Parameter and Result Metadata.

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

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

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

SQLColAttribute によるスパース列のサポートSQLColAttribute Support for Sparse Columns

Sqlcolattribute によるクエリを新しい実装行記述子 (IRD) フィールド SQL_CA_SS_IS_COLUMN_SET、列が決定する、 column_set列。SQLColAttribute queries the new implementation row descriptor (IRD) field, SQL_CA_SS_IS_COLUMN_SET, to determine if a column is a column_set column.

詳細については、次を参照してください。スパース列のサポート(ODBC)します。For more information, see Sparse Columns Support (ODBC).

参照See Also

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