在将现有(以及之前正在运行的)站点从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格式保存记录。
答案 0 :(得分:1)
虽然ACE和Jet数据库引擎确实将不明确的#xx/yy/zzzz#
日期文字视为mm/dd/yyyy
,但它们也接受明确的格式yyyy-mm-dd
和yyyy/mm/dd
,因此您的最佳解决方案将更新您的SwitchDate()
函数以返回其中一种格式。