数据类型转换

在下列四种情况下,可将数据从一种类型转换为另一种类型:当数据从一个应用程序变量传输到另一个应用程序变量(C 到 C)时,当应用程序变量中的数据发送到语句参数(C 到 SQL)时,当结果集列中的数据在应用程序变量中返回(C 到 SQL)时,当数据从一个应用程序变量传输到另一个应用程序变量(SQL 到 SQL)时。

将数据从一个应用程序变量传输到另一个应用程序变量时所发生的任何转换,都不在本文档讨论的范围内。

当应用程序将变量绑定到结果集列或语句参数时,应用程序会在选择应用程序变量的数据类型时隐式指定数据类型转换。 例如,假设某一列包含整数数据。 如果应用程序将整数变量绑定到该列,会指定不执行任何转换;如果应用程序将字符变量绑定到该列,会指定将数据从整数转换为字符。

ODBC 定义了如何在每种 SQL 和 C 数据类型之间转换数据。 基本上,ODBC 支持所有合理的转换,例如字符到整数和整数到浮点数,但不支持定义不明确的转换,例如浮点数到日期。 驱动程序需要为其支持的每种 SQL 数据类型的所有转换提供支持。 有关 SQL 和 C 数据类型之间的转换的完整列表,请参阅“附录 D:数据类型”中的将数据从 SQL 转换为 C 数据类型以及将数据从 C 转换为 SQL 数据类型

ODBC 还定义了标量函数,用于将数据从一种 SQL 数据类型转换为另一种数据类型。 CONVERT 标量函数由驱动程序映射到基础标量函数或者为了在数据源中执行转换而定义或函数。 由于此函数映射到特定于 DBMS 的函数,因此 ODBC 不会定义这些转换的工作原理或必须支持哪些转换。 应用程序通过 SQLGetInfo 中的 SQL_CONVERT 选项发现特定驱动程序和数据源所支持的转换。 有关 CONVERT 标量函数的详细信息,请参阅 ODBC 中的转义序列显式数据类型转换函数