SQLDescribeCol

对于执行的语句,SQL Server Native Client ODBC 驱动程序不需要查询服务器来描述结果集中的列。 在这种情况下, SQLDescribeCol 不会导致服务器往返。 与 SQLColAttribute 一样,调用 SQLDescribeCol 已准备好但未执行的语句将生成服务器往返。

当 Transact-SQL 语句或语句批处理返回多个结果行集时,可以通过序号引用的列源自单独的表或引用结果集中的完全不同的列。 SQLDescribeCol 应为每个集调用。 当结果集发生更改时,应用程序应在提取行结果之前重新绑定数据值。 有关处理多个结果集返回的详细信息,请参阅 SQLMoreResults

当由一批准备好的 SQL 语句生成多个结果集时,才报告第一个结果集的列属性。

对于大型值数据类型, DataTypePtr 中返回的值SQL_VARCHAR、SQL_VARBINARY或SQL_NVARCHAR。 ColumnSizePtr 中SQL_SS_LENGTH_UNLIMITED的值指示大小为“无限制”。

从 SQL Server 2012 开始,数据库引擎的改进使 SQLDescribeCol 能够获取预期结果的更准确说明。 这些更准确的结果可能与 SQL Server 早期版本中 SQLDescribeCol 返回的值不同。 有关详细信息,请参阅 元数据发现

SQLDescribeCol 对增强的日期和时间功能的支持

日期/时间类型返回以下值:

DataTypePtr ColumnSizePtr DecimalDigitsPtr
datetime SQL_TYPE_TIMESTAMP 23 3
smalldatetime SQL_TYPE_TIMESTAMP 16 0
日期 SQL类型日期 10 0
时间 SQL_SS_TIME2 8, 10..16 0..7
datetime2 SQL_TYPE_TIMESTAMP 19、21..27 0..7
日期时间偏移量 SQL_SS_TIMESTAMPOFFSET 26、28..34 0..7

有关详细信息,请参阅日期和时间改进(ODBC)。

SQLDescribeCol 对大型 CLR UDT 的支持

SQLDescribeCol 支持大型 CLR 用户定义的类型(UDT)。 有关详细信息,请参阅大型 CLR 用户定义的类型(ODBC)。

另请参阅

SQLDescribeCol 函数
ODBC API 实现细节