经典的 ASP 奇怪的 SQL 错误
Posted
技术标签:
【中文标题】经典的 ASP 奇怪的 SQL 错误【英文标题】:Classic ASP bizarre SQL error 【发布时间】:2012-08-09 14:53:25 【问题描述】:我正在使用以下 Conn 字符串连接到 Access DB
Conn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=\\server\share\Data\PFWTRAN.MDB"
以下 SQL 工作正常;
SQLIn = "SELECT Date, Time " & _
"FROM Transactions " & _
"WHERE TokenNumber = " & TokenNo & " " & _
"AND Date >= " & FromDateG & " " & _
"AND Direction = -1 " & _
"ORDER BY Date, TransactionNumber;"
但是,我想要 Transactions.Exception = 0 的行,但是当我添加此 AND 条件时,脚本会在打开 RS 时失败;
error '80004005' /path/.../.../...asp, line 97
如果我删除 AND 条件,它会再次起作用。
即使我尝试将 'Exception' 放在 SELECT 部分,它也不会运行并给我那个错误。
为什么包含一个字段会导致这样的错误?我读到错误是由于权限引起的,但我的权限很好,因为 SQL 可以在没有这一字段的情况下工作。
有什么线索吗?
这是一个非常旧的 Access 95 数据库(甚至更早),也许我需要更改提供的连接?
【问题讨论】:
您引用的是日期值吗?输出生成的实际 SQL 字符串并将其粘贴到 MS Access 中的新查询中。看看那里怎么说。 【参考方案1】:“但是,我想要 Transaction.Exception = 0 的行,但是当我添加此 AND 条件时,打开 RS 时脚本会失败”
但 Transaction.Exception 引用的表与您的查询使用的表不同。
FROM Transactions
Date
、Time
和 Exception
是 Problem names and reserved words in Access。将这些名称括在方括号中,或在它们前面加上表名/别名。
考虑切换您的方法以使用参数查询...并将 TokenNo
和 FromDateG
值作为参数提供,而不是将它们的值构建到 SELECT
语句中。
【讨论】:
谢谢!我将字段名称包含在 [ ] 中,它起作用了! p.s.那是一种类型。交易表名。以上是关于经典的 ASP 奇怪的 SQL 错误的主要内容,如果未能解决你的问题,请参考以下文章