gpt4 book ai didi

mysql - ASP (Classic) RecordSet value 'disappears' after first access, 当 MySQL TEXT 数据值

转载 作者:行者123 更新时间:2023-11-29 01:03:40 26 4
gpt4 key购买 nike

不久前,在一个快乐的程序员的和平世界里,ASP classic 和 MySQL (5.0) 曾经相处得很好。 ODBC (3.51) 是他们的 friend ,数据会毫无问题地从天而降(阅读:数据库)。

然后,有一天,发生了一件黑暗而神秘的事件。现在 MySQL Clan 中的某些数据类型拒绝运行。

突然之间,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

这导致:
输出:乱码乱码乱码
输出:
输出:
输出:

(我在这里要求一些自由度:上面的文本字符串 -> 请记住,为了本练习,它以文本或 MEDIUMTEXT 的形式出现。)

编辑 2:(如以下评论所述)我们的工作解决方案是这样的:

  1. 将真正不需要的内容更改为 VARCHAR(BigEnough)。
  2. 并为需要 ***TEXT 的内容编辑 ASP 以放置值直接进入一个变量。

这远不是一个很好的解决方案,但它确实迫使您更准确地考虑您的数据 - 这只能是一件好事......对吧?

最佳答案

马克,我要放远一点。就我对经典 ASP 的了解(由多年的誓言和爱组成),来自 MySQL 数据库的 NULL 答案导致......实际上什么都没有。除非您将记录集结果定义为字符串,否则它无法与 "" 进行比较。所以,要么你这样做:

var recordsetVal = oRs("textthing")&""

...或者您可以简单地这样做:

if oRs("textthing")&"" <> "" then 

此外,不要使用 while ... wend,而是使用 do while...loop 花边。它可能会起作用。同样,这是一个远景。这个问题可能涉及很多因素,但 MySQL 驱动程序和 ODBC 兼容性问题只是其中之一,幸运的是,可能性最小。随时通知我们。

关于mysql - ASP (Classic) RecordSet value 'disappears' after first access, 当 MySQL TEXT 数据值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17460250/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com