列大小、十进制数字、传输八进制长度和显示大小 - ODBC
数据类型的特点是列(或参数)大小、小数位数、长度和显示大小。 以下 ODBC 函数为 SQL 语句中的参数或数据源上的 SQL 数据类型返回这些属性。 每个 ODBC 函数返回一组不同的这些属性,如下所示:
SQLDescribeCol 返回其描述的列的列大小和十进制数字。
SQLDescribeParam 返回它描述的参数的参数大小和十进制数字。 SQLBindParameter 设置 SQL 语句中参数的参数大小和十进制数字。
目录函数 SQLColumns、SQLProcedureColumns 和 SQLGetTypeInfo 返回表、结果集或过程参数和数据源中数据类型的目录属性的属性。 SQLColumns 返回指定表中列的列大小、小数位数和长度(如基表、视图或系统表)。 SQLProcedureColumns 返回过程中列的列大小、小数位数和长度。 SQLGetTypeInfo 返回数据源上 SQL 数据类型的最大列大小和最小和最大十进制数字。
这些函数为列或参数大小返回的值对应于 ODBC 2 中定义的“精度”。x. 但是,这些值不一定对应于SQL_DESC_PRECISION或任何其他描述符字段中返回的值。 与 ODBC 2 中定义的“刻度”相对应的小数位数也是如此。x. 它不一定对应于SQL_DESC_SCALE或任何其他描述符字段中返回的值,而是来自不同的描述符字段,具体取决于数据类型。 有关详细信息,请参阅 列大小 和 十进制数字。
同样,传输八进制数长度的值不来自SQL_DESC_LENGTH。 它们来自所有字符和二进制类型的描述符字段的SQL_DESC_OCTET_LENGTH。 没有用于保存其他类型的此信息的描述符字段。
所有数据类型的显示大小值对应于单个描述符字段中的值,SQL_DESC_DISPLAY_SIZE。
描述符字段描述结果集的特征。 描述符字段在语句执行前不包含有关数据的有效值。 另一方面,SQLColumns、SQLProcedureColumns 和 SQLGetTypeInfo 返回的列大小、小数位数和显示大小的值返回数据源目录中存在的数据库对象(如表列和数据类型)的特征。 同样,在其结果集中, SQLColAttribute 返回数据源中列的列大小、小数位数和传输八进制数长度;这些值不一定与SQL_DESC_PRECISION、SQL_DESC_SCALE和SQL_DESC_OCTET_LENGTH描述符字段中的值相同。
有关这些描述符字段的详细信息,请参阅 SQLSetDescField。
相关主题: