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

新手问个小问题

过傻过天真 发布于 2008-07-14 16:11, 873 次点击
我刚学ASP不久,今天按照教材里的例题做了一个ASP文件和一个数据库,那ASP文件是用来把数据表里的内容显示出来,内容如下:

<%@language="vbscript"%>
<%
dim filepath,cn1,sq1,rs
filepath=server.MapPath("a1.mdb")
set cn1=server.createobject("adodb.connection")
cn1.open "driver={microsoft access driver(*.mdb)};dbq="&filepath
sq1="select * from s"
set rs=cn1.excute(sq1)
%>
<html>
<body bgcolor="white" topmargin="10" leftmargin="10">
<p align="center">
<font size="4"><b>用户情况表</b></font><br>
<hr size="1" width="90%" align="center">
<table width="90%" align="center" border="1" cellpadding="0" cellspacing="0" bordercolorlight="#000080" bordercolordark="#FFFFFF" bordercolor="#FFFFFF">
<tr height="35">
<td align="center">姓名</td>
<td align="center">性别</td>
<td align="center">年龄</td>
<td align="center">工资</td>
<td align="center">电话</td>
<td align="center">居住地区</td>
</tr>
<%
do while(not rs.eof)
response.write"<tr>"
response.write"<td align=center>&nbsp;"&rs("姓名")&"&nbsp;</td>"
response.write"<td align=center>&nbsp;"&rs("性别")&"&nbsp;</td>"
response.write"<td align=center>&nbsp;"&rs("年龄")&"&nbsp;</td>"
response.write"<td align=center>&nbsp;"&rs("工资")&"&nbsp;</td>"
response.write"<td align=center>&nbsp;"&rs("电话")&"&nbsp;</td>"
response.write"<td align=center>&nbsp;"&rs("居住地区")&"&nbsp;</td>"
response.write"</tr>"
rs.movenext
loop
rs.close
set rs=nothing
cn1.close
set cn1=nothing
%>
</table>
</body>
</html>

数据表(表名为s)内容如下:

编号    姓名    性别    年龄    工资    电话    居住地区
1    小唐    男    25    1600    6630030    长沙
2    小张    女    22    1400    5656453    北京
3    小李    男    20    1600    2626681    上海
4    小王    女    20    1300    2803502    武汉
5    小红    女    24    1400    2627562    长沙

我把这两个文件一起上传到虚拟空间一个名为123456789的文件夹了,可是不能访问,打开网页,显示:

Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'

[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

/123456789/Index.asp,行 6

我想了很久不知道第6行到底错在哪里,书里是这么写的啊.

请问这是为什么,该如何解决,请高手帮帮我,谢谢!
9 回复
#2
hmhz2008-07-14 16:54
set rs=cn1.excute(sq1)
改成
set rs=server.createobject("adodb.recordset")
rs.open sq1,cn1,1,1
#3
multiple19022008-07-14 18:58
我觉得楼上改法值得商榷。

他的出错在第六行,就是连接数据库那行。难道没有ac的驱动?
#4
过傻过天真2008-07-14 20:46
[bo][un]hmhz[/un] 在 2008-7-14 16:54 的发言:[/bo]

set rs=cn1.excute(sq1)
改成
set rs=server.createobject("adodb.recordset")
rs.open sq1,cn1,1,1


还是不行啊,

Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'

[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序

/123456789/Index.asp,行 6
#5
yms1232008-07-15 08:35
cn1.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&filepath&";Persist Security Info=False"
#6
过傻过天真2008-07-15 11:59
[bo][un]yms123[/un] 在 2008-7-15 08:35 的发言:[/bo]

cn1.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&filepath&";Persist Security Info=False"


还是不行

ADODB.Connection 错误 '800a0bb9'

参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。

/123456789/Index.asp,行 8
#7
过傻过天真2008-07-15 12:07
可以了!!!

把hmhz和yms123两位斑竹的方法结合起来就行了!

谢谢你们!

不过我看不懂yms123那语句是什么意思,能否给我讲一下?
#8
kgdipbyve2008-07-16 17:29
意思应该打开数据库.你可以根据字面意思推出来open是打开的意思,后面是连接数据库.不知道我说的是否正确?
#9
multiple19022008-07-16 17:36
至于这个open,也有2种方式连接Access数据库,见置顶帖。

楼主的情况可能是系统缺少了某个组件所致。

从你上面发的出错信息可以看到,用了yms123大牛的方法之后数据库可以打开了,只是进行查询的步骤出了错。
#10
yms1232008-07-16 20:18
[bo][un]过傻过天真[/un] 在 2008-7-15 12:07 的发言:[/bo]

可以了!!!

把hmhz和yms123两位斑竹的方法结合起来就行了!

谢谢你们!

不过我看不懂yms123那语句是什么意思,能否给我讲一下?

因为从楼主提供的错误信息来看,可能是连接字符串错误,检查连接字符串发现连接字符串正确,因此推断可能楼主的计算机不支持那种连接字符串,所以将数据库连接字符串进行替换为另一种连接字符串。
数据库连接字符串的不同,决定了数据库和连接数据库的方式不同。
同样是Access数据库,不同的连接字符串会使用不同的方式进行连接。
1