2

以下作品在 Access 中;

SELECT Transactions.Date, Transactions.Time, Transactions.Direction,
           Transactions.TransactionNumber, Transactions.TransactionType,
           Transactions.Exception, Exceptions.ExceptionType
FROM Transactions LEFT JOIN Exceptions 
         ON  (Transactions.TransactionNumber = Exceptions.TransactionNumber)
         AND (Transactions.Date = Exceptions.Date) 
         AND (Transactions.TokenNumber = Exceptions.TokenNumber)
WHERE (((Transactions.Date)>=20120803) 
         AND ((Transactions.Direction)=-1) 
         AND ((Exceptions.ExceptionType) Not In (43,44,45,46) 
             OR (Exceptions.ExceptionType) Is Null) 
         AND ((Transactions.TokenNumber)=6605253))
ORDER BY Transactions.Date, Transactions.TransactionNumber;

但是当在 ASP 中完成如下操作时,我得到错误 '80004005'

SELECT Transactions.Date, Transactions.Time, Transactions.Direction,
           Transactions.TransactionNumber, Transactions.TransactionType,
           Transactions.Exception, Exceptions.ExceptionType 
FROM Transactions LEFT JOIN Exceptions 
        ON Transactions.TransactionNumber = Exceptions.TransactionNumber 
    AND Transactions.Date = Exceptions.Date 
        AND Transactions.TokenNumber = Exceptions.TokenNumber 
WHERE Transactions.Direction = -1 
        AND (Exceptions.ExceptionType Not In (43,44,45,46) 
            OR Exceptions.ExceptionType Is Null)
        AND Transactions.TokenNumber= 6605253
        AND Transactions.Date >= 20120803 
ORDER BY Transactions.Date, Transactions.TransactionNumber

我顺便删除了一些括号,认为它会有所帮助,但它没有。

4

3 回答 3

2

这是通过将 Exception 这个词放在方括号中来解决的。

于 2012-08-16T14:25:39.187 回答
2

I agree with Remou's comment. 80004005 doesn't point at a bad query, I think it points at a data source name being wrong or a corrupt Access file.

I would check your connection string and verify that you can run a simple query before chasing this query.

于 2012-08-10T15:57:44.887 回答
1

迈克是对的。确保所有 IIS 进程都对包含数据库的文件夹具有读/写 (NTFS) 权限。通常,这将是 IUSR_[machinename] 帐户。根据您使用的 IIS 版本,它会有所不同。在 IIS 中,查看“匿名”用户映射到哪个帐户。

为了快速检查,只需将文件夹设置为“所有人”的读/写。它必须在文件夹级别,而不仅仅是文件,因为 MSAccess 需要创建/销毁 .LDB 文件以维护锁等。

于 2012-08-10T16:22:01.763 回答