我在很长一段时间内在新机器上设置了我的第一个本地托管网站,说实话,我并不十分熟悉现在配置的所有手动设置。我最后一次设置是在Windows XP中,当我启用IIS时,它似乎“正常工作”。现在不是这样。与MSAccess数据库的连接无法执行多个查询
我最近的问题是连接到MSAccess数据库。我有一个包含1个输入的表单的VERY BASIC页面。我检查数据库以确保它不包含该值,如果没有,则将值写入数据库。我收到以下错误:
Provider error '80004005'
Unspecified error
/trips/admin_add_hotel.asp, line 22
我在网上研究过,一切都似乎指向它是一个权限问题。但是,我可以删除代码的第二部分(书写),并且页面将正常返回。如果我尝试再次运行该页面或刷新,则会发生错误。这对我来说说用户有阅读权限。现在,我可以稍微等一会,删除代码的第一部分,然后写入数据库,它会正常工作。再次,对我来说,表示用户具有写入权限。但是,如果我尝试再次运行它...同样的错误。
这里的ASP代码:
<!--#include file="includefile.asp"-->
<%
if Request("action") = "submit" then
'make sure hotel name is filled in
if Request("fhotel") <> "" then
fhotel = Request("fhotel")
'make sure hotel doesn't already exist in DB
sql = "SELECT hotel_id FROM hotels WHERE hotel_name = '" & Replace(fhotel, "'", "''") & "'"
RS.Open sql, ConnectString
if NOT RS.EOF then
Session("msg") = "Hotel already exists"
End if
RS.Close
'add hotel to DB
if Session("msg") = "" then
sql = "INSERT INTO hotels (hotel_name) VALUES ('" & Replace(fhotel, "'", "''") & "')"
Conn.Open ConnectString
Conn.Execute sql
Conn.Close
Session("msg") = "Hotel added successfully"
fhotel = ""
End if
Else
Session("msg") = "Hotel left blank"
End if
Set RS = Nothing
Set Conn = Nothing
End if
%>
我的包含文件:
<%
ConnectString = "DSN=ConnectionDSN; Uid=username; Pwd=password"
Set RS = Server.CreateObject("ADODB.Recordset")
Set Conn = Server.CreateObject("ADODB.Connection")
%>
我DB具有1个表有两列:
- HOTEL_ID [自动编号]
- hotel_name [TEXT(255)]
这里是我的系统的详细信息:
- 的Windows 7专业版64位(虽然基于连接已经建立了32位在什么我在网上找到)
- IIS 7.5
只是为了确保它不是权限问题,我暂时允许“所有人”用户完全访问该文件夹。
任何帮助表示赞赏。我相信这是我必须完成并运行的最后一道障碍。
在此先感谢。
你必须有权限创建数据库驻留在文件夹中锁定文件* .LDB 。可能你没有该文件夹的创建文件权限。 –