共用方式為


SQLDescribeCol

對於執行的陳述式而言,SQL Server Native Client ODBC 驅動程式不需要查詢伺服器來描述結果集中的資料行。 在此情況下,SQLDescribeCol 不會造成伺服器往返。 就像 SQLColAttributeSQLNumResultCols,在已經備妥但是未執行的陳述式上呼叫 SQLDescribeCol 會產生伺服器往返。

當 Transact-SQL 陳述式或陳述式批次傳回多個結果資料列集時,按序數參考的資料行有可能源自於個別的資料表,或是參考結果集中完全不同的資料行。 應該針對每一個資料列集呼叫 SQLDescribeCol。 當結果集變更時,應用程式應該在提取資料列結果以前先重新繫結資料值。 如需有關處理多個結果集傳回的詳細資訊,請參閱<SQLMoreResults>。

當已備妥的 SQL 陳述式批次產生多個結果集時,只有第一個結果集會報告資料行屬性。

如果是大數值資料類型,以 DataTypePtr 傳回的值為 SQL_VARCHAR、SQL_VARBINARY 或 SQL_NVARCHAR。 ColumnSizePtr 中的 SQL_SS_LENGTH_UNLIMITED 值表示大小「不受限制」。

從 SQL Server 2012 開始,Database Engine 的改進功能就允許 SQLDescribeCol 針對預期的結果取得更精確的描述。 這些更精確的結果可能會與舊版 SQL Server 中 SQLDescribeCol 所傳回的值不同。 如需詳細資訊,請參閱<中繼資料探索>。

SQLDescribeCol 對增強型日期和時間功能的支援

針對日期/時間類型所傳回的值如下:

DataTypePtr

ColumnSizePtr

DecimalDigitsPtr

datetime

SQL_TYPE_TIMESTAMP

23

3

smalldatetime

SQL_TYPE_TIMESTAMP

16

0

date

SQL_TYPE_DATE

10

0

time

SQL_SS_TIME2

8, 10..16

0..7

datetime2

SQL_TYPE_TIMESTAMP

19, 21..27

0..7

datetimeoffset

SQL_SS_TIMESTAMPOFFSET

26, 28..34

0..7

如需詳細資訊,請參閱<ODBC 日期/時間的改善 (ODBC)>。

SQLDescribeCol 對於大型 CLR UDT 的支援

SQLDescribeCol 支援大型 CLR 使用者定義型別 (UDT)。 如需詳細資訊,請參閱<大型 CLR 使用者定義型別 (ODBC)>。

請參閱

概念

ODBC API 實作詳細資料

其他資源

SQLDescribeCol 函數