一个简单的问题 (200分)

  • 主题发起人 主题发起人 pegasus1
  • 开始时间 开始时间
P

pegasus1

Unregistered / Unconfirmed
GUEST, unregistred user!
我用ASP写了一个ACCESS作后台的留言本,在本机上用PWS测试没任何问题,
但上传到服务器后,只能作浏览,在提交留言时(即插入),IE提示以下
错误: 请各位赐教 ,指出具体问题和解决方案

Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'
[Microsof] [ODBC Microsoft Access 驱动程序]
操作必须使用一个可更新的查询。
 
服务器不支持写操作
 
服务器没有创建用户DSN,ODBC别名不可用,试试如下代码

' 初始化系统变量字典
if Not IsObject(Session("DCUserInfo")) then
Dir = Request.ServerVariables("SCRIPT_NAME")
Dir = StrReverse(Dir)
Dir = Mid(Dir, InStr(1, Dir, "/"))
Dir = StrReverse(Dir)
'检测当前绝对路径
Set Session("DCUserInfo") = Server.CreateObject("Scripting.Dictionary")
'mdb文件,与此文件在同一目录
Session("DCUserInfo").Add "DBConnectionString", "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath(Dir) & "/OOPS.mdb" & "; UID=; PWD="
Session("DCUserInfo").Add "ErrorPasswordTimes", 0
end if

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open Session("DCUserInfo").Item("DBConnectionString")
SQL = "SELECT * FROM UserInfo
Set RS = Conn.Execute(SQL)
.....

 
1、服务器上必须设置该access数据库文件的安全属性,使其可以被 IUSR_xxx 用户修改
(“我的电脑”找到哪个access文件,右键菜单选属性,选安全,添加许可的用户)
2、Conn.Execute('select ...')返回的recordset是只读的,必须创建Recordset对象
(当然 Conn.execute 执行 update delete insert 等命令是可以的)
 
我们猜上一通倒不如看看他的原码和表结构,事实上在PWS支持的,IIS未必是支持的,
就象ACCESS支持的SQL语句SQL SERVER未必支持一样。
我觉得应该是他的SQL语句或者表结构的问题。
连接应该不是问题,因为ASP用ADO可以很方便连接ACCESS库,无须建DNS。
 
现已查明原因,是因为NT服务器没有允许用户对数据库进行写操作,但不知是如何在服务器
上设置的,该服务器允许FTP文件上去,也允许对数据库进行查询操作。是否是在IIS上设置?
请赐教。
 
多人接受答案了。
 
后退
顶部