<%@language=vbscript codepage=936 %>
<!--#include file="inc/md5.asp"-->
<!--#include file="Inc/config.asp"-->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>good work</title>
</head>
<body>
<%
dim conn1,rs1
dim sql1,connstr1
Response.Write(Server.MapPath("../"))
Response.Write("<br>")
on error resume next
connstr1="DBQ="&"c:\inetpub\wwwroot\chunqiu\Databases\Databases.mdb"&";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
Response.Write(connstr1)
set conn1=server.createobject("ADODB.CONNECTION")
if err then
err.clear
else
conn1.open connstr1
response.Write("<br>")
sql1 = "select * from Admin"
response.Write("<br>")
Response.Write(sql1)
set rs1=Server.createobject("adodb.recordset")
rs1.open sql1,conn1,1,3
if rs1.bof and rs1.eof then
Response.Write("<br>"&"no results")
end if
conn1.close
set conn1=nothing
end if
%>
</body>
</html>
上面这段代码看着没有什么问题,但是为什么从数据库中读不到数据呢?
通过检查发现自己正在使用access软件打开了mdb数据库文件,导致被锁,所以上面的代码无法读出数据;
另外学习一下rs.open语法如下:
rs.open source,activeconnection,cursortype,locktype
source为sql语句,activeconnection为数据库教程连接,cursortype是游标,locktype是数据锁定类型.
cursortype
常量 说明
adopenforwardonly(值为0) (默认值)打开仅向前类型游标。
adopenkeyset(值为1) 打开键集类型游标。
adopendynamic(值为2) 打开动态类型游标。
adopenstatic(值为3) 打开静态类型游标。
locktype
常量 说明
adlockreadonly (值为1) (默认值)只读 — 不能改变数据。
adlockpessimistic(值为2) 保守式锁定(逐个) — 提供者完成确保成功编辑记录所需的工作,通常通过在编辑时立即锁定数据源的记录来完成。
adlockoptimistic(值为3) 开放式锁定(逐个) — 提供者使用开放式锁定,只在调用 update 方法时才锁定记录。
adlockbatchoptimistic(值为4) 开放式批更新 — 用于批更新模式(与立即更新模式相对)。
cursortype
0 仅向前游标,只能向前浏览记录,不支持分页、recordset、bookmark
1 键集游标,其他用户对记录说做的修改将反映到记录集中,但其他用户增加或删除记录不会反映到记录集中。支持分页、recordset、bookmark
2 动态游标功能最强,但耗资源也最多。用户对记录说做的修改,增加或删除记录都将反映到记录集中。支持全功能浏览。
3 静态游标,只是数据的一个快照,用户对记录说做的修改,增加或删除记录都不会反映到记录集中。支持向前或向后移动
locktype
locktype为记录集的锁定类型,其取值为:
1 锁定类型,默认的,只读,不能作任何修改
2 当编辑时立即锁定记录,最安全的方式
3 只有在调用update方法时才锁定记录集,而在此前的其他操作仍可对当前记录进行更改、插入和删除等
4 当编辑时记录不会被锁定,而更改、插入和删