注册 登录
编程论坛 ASP技术论坛

新手求助(教程里的代码居然都会出错 T T )

saladinlala 发布于 2010-05-17 11:54, 811 次点击
刚开始学ASP,从网上下了个十日学会asp的教程,前面还比较顺利,学到ACCESS数据库的连接和读入就卡住了,照教程上的实例写的ASP无法运行,显示的错误信息如下:

Microsoft VBScript 编译器错误 错误 '800a03f6'

缺少 'End'

/iisHelp/common/500-100.asp,行242

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'

ODBC 驱动程序不支持所需的属性。

/import2.asp,行9


在网上查找错误信息含义,似乎是数据库连接失败,数据库名为gustbook.mdb,含一个名为gustbook的表,放在网站主目录下,主目录安全标签中已添加everyone权限,所有读写控制权限已开通,代码如下,请问是哪里出了问题?

<%
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("gustbook.mdb")
%>

<%
exec="select * from guestbook"
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,1,1
%>

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<%do while not rs.eof%><tr>
<td><%=rs("name")%></td>
<td><%=rs("tel")%></td>
<td><%=rs("message")%></td>
<td><%=rs("time")%></td>
</tr>
<%
rs.movenext
loop
%>
</table>

附截屏:
http://farm5.static.

 
 

[ 本帖最后由 saladinlala 于 2010-5-17 14:26 编辑 ]
10 回复
#2
golmjie2010-05-17 12:27
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath ( "gustbook.mdb")
你那句换成这句看看。
#3
saladinlala2010-05-17 12:33
以下是引用golmjie在2010-5-17 12:27:11的发言:

conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath ( "gustbook.mdb")
你那句换成这句看看。
还是不行,不过错误信息变了:

Microsoft VBScript 编译器错误 错误 '800a03f6'

缺少 'End'

/iisHelp/common/500-100.asp,行242

Microsoft JET Database Engine 错误 '80040e37'

Microsoft Jet 数据库引擎找不到输入表或查询 'guestbook'。 确定它是否存在,以及它的名称的拼写是否正确。

/import2.asp,行11

#4
fujian5672010-05-17 13:42
把这句conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("gustbook.mdb")改成
      conn.open "DRIVER={Driver do Microsoft Access (*.mdb)};DBQ="&Server.MapPath("gustbook.mdb")就可以了
再把<%
rs.movenext
loop
%>
改成
<%
rs.movenext
loop
rs.close
%>

[ 本帖最后由 fujian567 于 2010-5-17 13:44 编辑 ]
#5
gupiao1752010-05-17 14:14
数据库名为gustboo.mdb,含一个名为gustbook的表
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("gustbook.mdb")
你的数据库名是gustbook.mdb还是gustboo.mdb?
缺少END,请认真检查if endif配对!一一对应!
如果还不行,就把所有代码都发出来!
#6
saladinlala2010-05-17 14:30
以下是引用fujian567在2010-5-17 13:42:19的发言:

把这句conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("gustbook.mdb")改成
      conn.open "DRIVER={Driver do Microsoft Access (*.mdb)};DBQ="&Server.MapPath("gustbook.mdb")就可以了
再把
改成
改了,现在错误提示成了:

Microsoft VBScript 编译器错误 错误 '800a03f6'

缺少 'End'

/iisHelp/common/500-100.asp,行242

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21'

ODBC 驱动程序不支持所需的属性。

/import2.asp,行11

#7
saladinlala2010-05-17 14:33
以下是引用gupiao175在2010-5-17 14:14:08的发言:

数据库名为gustboo.mdb,含一个名为gustbook的表
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("gustbook.mdb")
你的数据库名是gustbook.mdb还是gustboo.mdb?
缺少END,请认真检查if endif配对!一一对应!
如果还不行,就把所有代码都发出来!
抱歉,是gustbook.mdb,和程序里一样,我上面打错了。我发出来的已经是asp文件里的所有代码了,根本没用if语句,让我到哪儿去加end呢?所以才头疼啊
#8
gupiao1752010-05-17 15:02
程序代码:
<%
set conn=server.createobject("adodb.connection")
conn.open
"driver={microsoft access driver (*.mdb)};dbq="&server.mappath("guestbook.mdb")
%>
<%
exec
="select * from guestbook"
set rs=server.createobject("adodb.recordset")
rs.open exec,conn,
1,1
%>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<%do while not rs.eof%><tr>
<td><%=rs("name")%></td>
<td><%=rs("tel")%></td>
<td><%=rs("message")%></td>
<td><%=rs("time")%></td>
</tr>
<%
rs.movenext
loop
%>
</table>

    这个代码很正常,我把你的代码套在我的数据库上显示一切正常,这里就直接排除代码的问题了。代码上根本没有任何问题!
关键点我猜可能是你ACCESS里的数据库是否有问题!用的是什么操作系统,什么版本的ACCESS,数据库内数据是你自己添加的还是原本就存在的!
我这里把我成功操作的那个数据库发给你,你自己试试!

#9
gupiao1752010-05-17 15:04
只有本站会员才能查看附件,请 登录

把这个RAR解压缩后,里面有个MDB,替换你以前的那个guestbook.mdb,里面的数据全是数字,你自己测试下!

#10
saladinlala2010-05-17 15:45
以下是引用gupiao175在2010-5-17 15:04:02的发言:


把这个RAR解压缩后,里面有个MDB,替换你以前的那个guestbook.mdb,里面的数据全是数字,你自己测试下!
成功了,可为什么我按你那个数据库新建的一个guestbook.mdb就不行呢?太奇怪了。我用的是ACESS 2003,系统是win2000 sp4
#11
saladinlala2010-05-17 17:39
终于弄明白了,原来在浏览器里调用ASP连接数据库时不能用ACCESS打开数据库,多谢LS各位,特别是gupiao175大大的帮助。
1