MySQL ODBC 5.1 驱动程序向 ADODB 返回错误的数据类型

本教程将介绍MySQL ODBC 5.1 驱动程序向 ADODB 返回错误的数据类型的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

MySQL ODBC 5.1 驱动程序向 ADODB 返回错误的数据类型 教程 第1张

问题描述

情况:与传统经典的ASP代码的工作,试图将代码库从旧服务器移动到一个新的.

代码尝试连接到使用MySQL ODBC 5.1驱动器和所述ADODB.Connection对象在Windows服务器上MySQL数据库.

连接字符串= 驱动器= {MySQL的ODBC 5.1驱动};服务器= DBSERVER;数据库= dbname;开发UID =用户名;密码=密码;选项= 3"

查询结果列于ADODB.RecordSet对象返回.当我试图访问包含标准的MySQL整型字段,我得到这个错误:

Microsoft VBScript运行错误 '800a01ca',点击变量使用自动化类型不在VBScript支持的

如果我使用CLNG手动转换字段()然后被消除错误,并返回正确的值.然而,有太多的代码,以手动查找每个引用的整数和手动转换它.

VarType函数()返回19为这些值,这似乎是某种类型的数据类型龙那VB不理解.( 看这里)是不是应该返回VarType函数3长整数ODBC驱动程序?(见这里)

我试图传递选项16384(NO_BIGINT)中的选项="连接字符串的参数,但它没有任何区别.

不知道怎么纠正呢?这似乎应该传递给MySQL的ODBC驱动程序返回多头为长整型数据类型的一种选择,但我不能找到它.

在任何人提到它:是的,我们知道传统的ASP是坏的.不,我们没有足够的资源,以港口这个代码到别的东西现在.我们只是需要继续在传统的ASP工作当前时间.

推荐答案

通过消去我终于发现了问题的过程确定.不知道的的这种情况发生,但它必须是在MySQL的ODBC驱动程序中的错误.

整数字段具有起因误差UNSIGNED属性.除去该属性导致要返回作为标准整数类型的字段值.显然,ODBC驱动程序不处理来自无符号整型为VBScript整数类型适当地转换,并且不是返回指针到一个长

我还注意到(1),其余是用作为布尔值的字段上TINYINT这个问题.改变从TINYINT(1)至INT(11)的数据类型[默认]消除了这种错误还

希望这会帮助别人.FYI我还张贴这个问题在MySQL的ODBC驱动程序的论坛,但没有人愿意给予答复.

好了关于MySQL ODBC 5.1 驱动程序向 ADODB 返回错误的数据类型的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。