情况:使用传统的ASP代码尝试将代码库从旧服务器移动到新服务器。MySQL ODBC 5.1驱动程序将错误的数据类型返回给ADODB
代码尝试使用MySQL ODBC 5.1驱动程序和ADODB.Connection对象连接到Windows服务器上的MySQL数据库。
Connection String = "Driver={MySQL ODBC 5.1 Driver};Server=dbserver;Database=dbname;Uid=username;Password=password;Option=3"
在ADODB.RecordSet对象中返回查询结果。 当我试图访问包含标准的MySQL整型字段,我得到这个错误:
Microsoft VBScript runtime error '800a01ca'
Variable uses an Automation type not supported in VBScript
如果我手动转换,则错误被消除,并返回正确的值()使用CLNG领域。但是,有太多代码需要手动查找对整数的每个引用并手动将其转换。
VarType()对于这些值返回19,这似乎是VB不能理解的某种Long数据类型。 (See here) 是不是ODBC驱动程序应该为长整型返回VarType 3? (see here)
我尝试在连接字符串的“option =”参数中传递选项16384(NO_BIGINT),但它没有任何区别。
任何想法如何解决这个问题?看起来应该有一个选项传递给MySQL ODBC驱动程序以Long Integer数据类型返回long,但是我找不到它。
之前有人提到它:是的,我们知道传统的ASP是不好的。不,我们现在没有资源将这些代码移植到别的东西上。我们只需要它在当前时间继续使用传统的ASP。
不要让任何人告诉你,传统的ASP本质上是坏的。 (我从来没有使用MySQL,所以不能帮助你的实际问题,但我想把它放在那里。) – Martha
@Martha他们不需要写这个,经典的ASP并不差,它只是旧。仍然有很多项目需要支持,不会转移到.Net。很多时候,客户很高兴它如何执行,因此它保持不变。 – Lankymart
好吧,为什么downvote?我做错了什么? –