ODBC值为-9的数据类型的符号名是什么?
使用ODBC访问MySQL数据库,MyODBC版本是mysql-connector-odbc-5.2.2-win32。成功连接后,用语句“show tables;”查询。对返回的结果,使用 SQLDescribeCol 获取列信息,返回的数据类型值是 -9。
但我在系统的 sql.h、sqlext.h 头文件里面都没有找到-9所对应的数据类型……我把它当做SQL_VARCHAR来处理,可以成功。
不知道这个-9对应的数据类型是什么?在哪里定义?
很神秘的神秘人
12 years, 4 months ago
Answers
貌似没有你说的-9,是不是返回错误了呢?
sql.h里定义的数据类型只有:
/*
* Standard SQL datatypes, using ANSI type numbering
*/
#define SQL_UNKNOWN_TYPE 0
#define SQL_CHAR 1
#define SQL_NUMERIC 2
#define SQL_DECIMAL 3
#define SQL_INTEGER 4
#define SQL_SMALLINT 5
#define SQL_FLOAT 6
#define SQL_REAL 7
#define SQL_DOUBLE 8
#if (ODBCVER >= 0x0300)
#define SQL_DATETIME 9
#endif /* ODBCVER >= 0x0300 */
#define SQL_VARCHAR 12
-----------------------分割线------------------------
在一份perl的odbc代码里找到了o(╯□╰)o,附上链接http://code.activestate.com/lists/perl-dbi-dev/478/?attachment_id=1
! /* Support for Unicode and SQL92 */
! #define SQL_BIT (-7)
! #define SQL_WCHAR (-8)
! #define SQL_WVARCHAR (-9)
! #define SQL_WLONGVARCHAR (-10)
SQL_WVARCHAR宽字符,不过貌似现在不支持了。
Astria
answered 12 years, 4 months ago