不久前,在一个快乐的程序员的和平世界里,ASP 经典和 MySQL (5.0) 曾经相处得很好。ODBC (3.51) 是他们的朋友,数据会毫无问题地从天堂流出(阅读:数据库)。
然后,有一天,发生了一件黑暗而神秘的事件。现在 MySQL Clan 中的某些 DataTypes 拒绝表现。
突然之间,TEXT 在 ASP 对象中不再可用。因此,任何NOT NULL的预测试都成为对象中数据的结尾。
... 严重地。什么的。您可以在此处查看表示:http ://bugs.mysql.com/bug.php?id=44831 和此处: http: //forums.mysql.com/read.php?132,220948,220948
我的问题是:有没有人知道为什么会发生这种情况。我有零愿望回去编辑 100 个站点,以便在记录集填满后立即将值放入 var。
抱我超人!
我们已经尝试升级到 MySQL 5.6 和 ODBC 5.1.sumthin & 5.2.5 ......但没有任何帮助。(我们确实认为 ODBC 版本对问题没有影响)
当前生产服务器仍为 ODBC 3.51 + MySQL 5.0
当前测试服务器由 ODBC 5.2.5 + MySQL 5.6 组成
编辑:使用 ADODB 连接
即:
dim oC, oRs
set oC = Server.createObject("ADODB.Connection")
oC.Open database
set oRs = oC.execute("SELECT 'garble garble garble garble' as `textthing`;")
if not oRs.eof then
for x = 0 to 3
response.write "Output: "
response.write oRs("textthing") &"<br />"
next
end if
oRs.close
set oRs = nothing
oC.close
set oC = nothing
这导致:
输出: 乱码 乱码 乱码
输出:
输出:
输出:
(我会在这里要求一些自由度:上面的文本字符串 -> 请记住,为了这个练习,它以 TEXT 或 MEDIUMTEXT 的形式出现。)
编辑 2:( 如以下评论中所述) 我们拥有的工作解决方案是:
- 将真正不需要 ***TEXT 的内容更改为 VARCHAR(BigEnough)。
- 并为需要 ***TEXT 的内容编辑 ASP 以将值直接放入变量中。
这远不是一个很好的解决方案,但它确实迫使您更准确地考虑您的数据 - 这只能是一件好事......对吗?