【问题标题】:Volatility of query results in asp查询结果在asp中的波动
【发布时间】:2009-12-14 20:38:41
【问题描述】:

我现在已经看到了几个例子,其中我正在处理的一些遗留代码表现出似乎有错误的行为,我想知道我是不是不明白什么。

  rsCaspio.Open sql, dbCaspio, ,adLockReadOnly
  response.write(rsCaspio("fieldname") & "<BR>")
  response.write(rsCaspio("fieldname") & "<BR>")

第一次写入内容,第二次为空。这不是出乎意料吗?我只是对查询一无所知,还是真的发生了一些我需要深入研究的奇怪事情?也许第一次阅读后不能保证结果?这段代码一直在工作,但经过一些更改后突然变为空白。最初的程序员会在几个例程中读取一次并多次引用结果,这很可怕,但上面的示例来自我的调试,并且这些行是紧挨着的。

如果是 asp.net,我会寻找重载的东西或怪异的指针数学,因为它是遗留的,但在好的旧 ASP 中不应该是这种情况,对吧?

谢谢!

【问题讨论】:

  • 它是 BLOB/TEXT 字段吗?
  • 在这种特殊情况下,它是一个由 177 个字符组成的字符串,经过验证可以是 ASCII 字母、数字、冒号、句点、逗号和空格。
  • 但它是存储在 BLOB/TEXT 字段还是 varchar/char 字段中?我问的原因是我记得很久以前使用某些驱动程序读取 BLOB 字段的问题。
  • 我明白了。它确实是一个 TEXT 字段。其他地方都是 VARCHAR,但如果是 BLOB/TEXT 的问题,那么可能就是这样!
  • @Chris:你应该把这个写下来作为答案。

标签: mysql asp-classic ado


【解决方案1】:

是的,就像克里斯刚才所说的那样。我发现旧版本的 SQL Server 会出现这个问题。我认为解决方案是任何 TEXT 列都必须出现在您的 select 语句中,并且您不能阅读它们两次。

我认为您对此无能为力。也许更新一些 ADO 内部或 SQL Server 本身 - 可能它是 SQL Server 中的一个模糊设置,但我从未找到它。

【讨论】:

  • 谢谢。我希望克里斯把它作为一个答案,但我只是读入一个变量并多次访问它以获得解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-03
  • 1970-01-01
  • 2014-04-23
相关资源
最近更新 更多