1

在将现有(和以前工作的)站点从 Windows Server 2003 移动到 Server 2008,从 IIS6 跳转到 IIS7 的过程中,我遇到了这个奇怪的问题:

OpenSQL("SELECT * FROM bookings WHERE apartment_id = '" & strApartment & "' AND BookDate = #" & SwitchDate(dDate) & "#")

运行时,上述 SQL 脚本仅在日期中没有前导零的情况下返回行。例如,如果日期是 10/01/2010,它将返回行。但如果日期是 01/01/2010,它将不会返回行。相反,我收到此错误:

BOF 或 EOF 为 True,或者当前记录已被删除。请求的操作需要当前记录。

我对 ASP 一点也不熟悉(在这种情况下,我相信运行 VB,虽然它是经典的 ASP - 我不知道你是怎么说的?)。但这是一个非常简单的请求,我无法理解发生了什么。我尝试删除 switchdate 函数(删除所有前导零),并使用语法,但都无济于事。

Access DB 保存格式为 01/01/2001 的记录。

4

1 回答 1

1

虽然 ACE 和 Jet 数据库引擎确实会处理不明确的#xx/yy/zzzz#日期文字,因为mm/dd/yyyy它们也接受明确的格式yyyy-mm-ddyyyy/mm/dd因此您最好的解决方案是更新您的SwitchDate()函数以返回其中一种格式。

于 2013-05-29T13:38:45.890 回答