一个关于asp和access的小问题(20分)

J

jie5

Unregistered / Unconfirmed
GUEST, unregistred user!
有一test.asp,内容如下:
<%
set conn=server.createobject("adodb.connection")
DBPath = Server.MapPath("people.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" &amp;
DBPath
set rs = Server.CreateObject("ADODB.RecordSet")
sql="select * from test" 'test为数据库people.mdb中的表,表中有a,b,c,d四个字段名,为文本类型'
rs.open sql,conn,2,2
rs.AddNew
rs("a")="11"
rs("b")="22"
rs("c")="33"
rs("d")="44"
rs.update
%>
运行时,出错,提示:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] 不能更新。数据库或对象为只读。
提示错误语句是 rs.update所在行。
应该没有错啊。其中rs.open sql,conn,2,2就是以动态的方式打开数据集啊,支持更新的。
 
用ADODB.COnnection的execute试试,在execute中写insert语句
 
在DELPHI中INSERT可以,但我现在不是要在DELPHI中使用。
只是简单的从网页上使用access数据库。
我若吧 AddNew改为Insert,还是一样的错误!
为什么这样??
 
这么多DELPHI高手不会没有一个会ASP的把???
 
update出了问题,问题应该在前面,我看可能是字段类型不符,
 
唉,没有人能解决吗?
a,b,c,d四个字段都是文本类型,也就是字符型,哪里会错呢?
各位帮忙看看啊。
 
哪位高手进来看看哪
 
晕!
在IIS里把数据文件所在的虚拟目录设为可写即可。
默认是只读
 
I GOT IT,这个问题我以前也碰到过,我敢肯定你是在NT的IIS平台下运行的,估计没错的话
这个NT是D版的。同样的程序到PWS下去试试,没准你会有所惊喜发现。但这并不是说NT下就
没办法了,你可以用比较原始的INSERT语句试试,我以前就是这么解决的。说到底,ASP这
东东必竟不是严格表述语言,很多问题微软自己也难以自圆其说。
 
rs.open sql,conn,1,2
还有,防火墙也许是罪愧祸手,只让读不让写入
 
再晕,我还真不知道在IIS上D版和正版的有什么区别,如果你在PWS下试过,只是可能你
在PWS中已经把该目录设为只读的而已,与D版有什么相关呢?再说IIS也绝对比PWS好得多
,可以说PWS只是简化了的IIS罢了。
用RecordSet的ADDNEW方法来添加记录,代码的可读性会更好一点儿,但要设好指针。
用INSERT方法来添加记录,效率比较高,但可读性差了一点儿。
 
防火墙应该不是问题,因为如果是防火墙的问题的话,它挡住的不是写入数据,而是传入
数据,而客户端的游览请求或反馈都是传入数据。而且大部分防火墙只是限制可以开放的
端口而已,并非限制方向。特别是硬件防火墙。
如果是类似BLACKICE的软件防火墙,对写入硬盘有限制,也只是打开了APPLICATION
PROTECTION。
如果虚拟目录不是可写,就算你是用INSERT方法也没有用。
 
大家说的都有里,可我的情况还是不行
我的系统是XP,IIS里虚拟目录是可写的,用INSERT试过还是同样问题,
rs.open sql,conn,1,2也不行。没有防火墙。
天啊。。
 
如果INSERT不行,那肯定是文件可写的问题,几个步骤:
1、检查数据文件所在的虚拟目录是否可写(根目录可写,子目录不一定可写)
2、检查数据文件是否是只读属性。
3、因为你是用ODBC来连接数据,所以,你要检查一下ODBC的设置。
 
我当然知道IIS比PWS要好了,要不然微软是干什么吃的啊?但是,IIS某些版本对ODBC的支持是
有问题,这不仅是我一个人碰到过的事情,我的许多同学都碰到过类似的问题.
 
IIS某些版本?IIS自NT中4.XX到现在2000、CP中的5对ODBC的支持会有问题?没听说过。
我从NT 4开始用IIS给邮电的大型网站做起,到现在用WINDOWS 2000 ADVANCED SERVER
给国外做行业B2B网站都没见过IIS对ODBC支持有什么问题。而且用ASP无非是用ACCESS
和SQL SERVER两种数据库。连接方式不是ADO就是ODBC。
不管是简体中文、繁体中文、英文、日文的WINDOWS中,IIS都很正常(除了总是有漏洞
)之外,我想它并非有什么支持的问题。开玩笑,M$自己对自己都支持不好?
 
这个问题我也没搞明白。由于我是在本地测试出现的这个问题,当我把文件上传到
WEB服务器上时,却可以正常运行了。
真是怪事
 
顶部