默认 C 数据类型

如果应用程序在 SQLBindColSQLGetDataSQLBindParameter 中指定SQL_C_DEFAULT,则驱动程序假定输出或输入缓冲区的 C 数据类型对应于缓冲区绑定到的列或参数的 SQL 数据类型。

重要

互操作应用程序不应使用SQL_C_DEFAULT。 相反,它们应始终指定所使用的缓冲区的 C 类型。 这是因为驱动程序无法始终正确确定默认 C 类型,原因如下:

  • 如果 DBMS 提升列或参数的 SQL 数据类型,则驱动程序无法确定列或参数的原始 SQL 数据类型。 因此,它无法确定相应的默认 C 数据类型。

  • 如果驱动程序无法确定是否对特定列或参数进行签名(通常由 DBMS 处理),则驱动程序无法确定是否应对相应的默认 C 数据类型进行签名或无符号。

    因为提供SQL_C_DEFAULT只是为了方便编程,所以应用程序在指定实际的 C 数据类型时不会丢失任何功能。

本附录后面的 将数据从 SQL 转换为 C 数据类型中包含了一个表,其中显示了每种 SQL 数据类型的默认 C 数据类型。