元数据是描述其他数据的数据。 例如,结果集元数据描述结果集的特征,例如结果集中的列数、这些列的数据类型、其名称、精度和可为 null 性。
ODBC 通过其目录 API 函数向应用程序提供元数据。 SQL Server Native Client ODBC 驱动程序实现许多 ODBC API 目录函数作为对相应 SQL Server 目录过程的调用。
应用程序需要大多数结果集作的元数据。 例如,应用程序使用列的数据类型来确定要绑定到该列的变量类型。 它使用字符列的字节长度来确定它必须具有多少空间才能显示该列中的数据。 应用程序如何确定列的元数据取决于应用程序的类型。
垂直应用程序通常使用预定义表,并对这些表执行预定义作。 由于此类应用程序的结果集元数据是在编写应用程序之前定义的,并且由开发人员控制,因此它可以硬编码到应用程序中。 例如,如果将订单 ID 列定义为数据源中的 4 字节整数,则应用程序始终可以将 4 字节整数绑定到该列。 在应用程序中硬编码元数据时,对应用程序使用的表的更改通常意味着对应用程序代码的更改。
在通用应用程序中,尤其是支持即席查询的应用程序,它们创建的结果集的元数据通常未知,直到运行时。
若要确定结果集的特征,应用程序可以调用:
- SQLNumResultCols 确定请求返回的列数。 
- SQLColAttribute 或 SQLDescribeCol 描述结果集中的列。 
编写设计良好的应用程序,假设结果集未知,并使用这些函数返回的信息来绑定结果集中的列。 应用程序可以在准备好或执行语句后随时调用这些函数。 但是,为了获得最佳性能,应用程序应在执行语句后调用 SQLColAttribute、 SQLDescribeCol 和 SQLNumResultCols 。
可以有多个对元数据的并发调用。 ODBC 目录 API 实现的基础系统目录过程可以在使用静态服务器游标时由 ODBC 驱动程序调用。 这样,应用程序就可以同时处理对 ODBC 目录函数的多个调用。
如果应用程序多次使用一组特定的元数据,则它可能受益于首次获取专用变量时在私有变量中缓存信息。 这样可以防止以后针对相同信息调用 ODBC 目录函数,从而强制驱动程序往返服务器。