ODBC 与预言机,绑定数值字段

ODBC with oracle, bind numeric fields

本文关键字:字段 绑定 预言机 ODBC      更新时间:2023-10-16

我有一个大问题。我将该函数用于从数据库读取类型并在 c++ 中绑定正确的类型

SQLGetDescField(cursor->_desc,i,SQL_DESC_TYPE,&field->type,NULL,NULL)

Oracle的函数告诉我,类型是:SQL_DECIMAL但这是不正确的。

你看到VARCHARDATE列了吗?

您在架构信息中看到什么:

SELECT table_name, column_name, data_type, 
decode(data_type,
    'DATE', '11',
    'NUMBER', data_precision || ',' || data_scale,
    data_length) data_length
FROM user_tab_columns
WHERE table_name='MY_TABLE' AND column_name = 'MY_COLUMN'

在 ODBC 中SQLColumns()我使用函数来读取架构信息,使用它(通过 RecordSet)检索类型名称和列大小(对于各种数字类型各不相同)。当然,您可以直接从user_tab_columns阅读此类信息。对于数字类型,只需注意data_precisiondata_scale