ODBC值为-9的数据类型的符号名是什么?


使用ODBC访问MySQL数据库,MyODBC版本是mysql-connector-odbc-5.2.2-win32。成功连接后,用语句“show tables;”查询。对返回的结果,使用 SQLDescribeCol 获取列信息,返回的数据类型值是 -9。
但我在系统的 sql.h、sqlext.h 头文件里面都没有找到-9所对应的数据类型……我把它当做SQL_VARCHAR来处理,可以成功。
不知道这个-9对应的数据类型是什么?在哪里定义?

c mysql

很神秘的神秘人 12 years, 5 months ago

貌似没有你说的-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, 5 months ago

Your Answer