列大小、十进制数字、传输八进制长度和显示大小 - ODBC

数据类型的特点是列 (或参数) 大小、十进制数字、长度和显示大小。 以下 ODBC 函数返回SQL语句中的参数或数据源上SQL数据类型的这些属性。 每个 ODBC 函数返回一组不同的这些属性,如下所示:

  • SQLDescribeCol 返回所描述列的列大小和十进制数字。

  • SQLDescribeParam 返回它描述的参数的参数大小和十进制数字。 SQLBindParameter 在 SQL 语句中设置参数的参数大小和十进制数字。

  • 目录函数 SQLColumnsSQLProcedureColumnsSQLGetTypeInfo 返回表、结果集或过程参数和数据源中数据类型的目录属性的属性。 SQLColumns 返回指定表中列的列大小、小数位数和长度, (例如基表、视图或系统表) 。 SQLProcedureColumns 返回过程中列的列大小、小数位数和长度。 SQLGetTypeInfo 返回数据源上SQL数据类型的最大列大小和最小和最大十进制数字。

这些函数为列或参数大小返回的值对应于 ODBC 2 中定义的“精度”。x. 但是,这些值不一定对应于在SQL_DESC_PRECISION或任何其他描述符字段中返回的值。 对于十进制数字,这与 ODBC 2 中定义的“scale”相对应也是如此。x. 它不一定对应于在SQL_DESC_SCALE或任何其他描述符字段中返回的值,而是来自不同的描述符字段,具体取决于数据类型。 有关详细信息,请参阅 列大小十进制数字

同样,传输八进制数长度的值不来自SQL_DESC_LENGTH。 它们来自所有字符和二进制类型的描述符字段的SQL_DESC_OCTET_LENGTH。 没有用于保存其他类型的此信息的描述符字段。

所有数据类型的显示大小值对应于单个描述符字段中的值,SQL_DESC_DISPLAY_SIZE。

描述符字段描述结果集的特征。 描述符字段在语句执行前不包含有关数据的有效值。 另一方面, SQLColumnsSQLProcedureColumnsSQLGetTypeInfo 返回的列大小、小数位数和显示大小的值返回数据库对象的特征,如表列和数据类型。 同样,在其结果集中, SQLColAttribute 返回数据源中列的列大小、十进制数字和传输八进制数长度:这些值不一定与SQL_DESC_PRECISION、SQL_DESC_SCALE和SQL_DESC_OCTET_LENGTH描述符字段中的值相同。

有关这些描述符字段的详细信息,请参阅 SQLSetDescField

相关主题: