01: <HTML><BODY>
02: <!--#include file="adoVBs.inc"-->
03: <%
04: ’使用ASP的Connection 对象打开数据库,数据库文件为上图的<Friend.mdb>’
05: Dim objConn
06: Set objConn=Server.CreateObject("ADODB.Connection")
07: objConn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" &_
08: "Data Source=" & Server.MapPath("Friend.mdb")
09: objConn.Open
10: 读取"data"表的记录,然后存放在Record set对象
11: Dim objRS
12: Set objRS=Server.CreateObject("ADODB.Recordset")
13: ObjRS.Open "data",objConn,adOpenKeyset,adLockOptimistic,adCmdTable
14: ’将目前指针所指到的记录显示在浏览器上
15: If Not objRS. EOF then
16: Response.Write "编号:"&objRS("编号")& "<BR>"
17: Response. Write "姓名:"&objRS("姓名")& "<BR>"
18: Response. Write "性别:"&objRS("性别")& "<BR>"
19: Else
20: Response.Write "到达数据库的结尾,已经显示完所有符合条件的记录"
21: End If
22: ’关闭数据库连接并释放对象实例
23: ObjRS. Close
24: Set objRS=Nothing
25: ObjConn.Close
26: Set objConn=Nothing
27: %>
28: </BODY></HTML>
上述代码为ASP编程中一般打开Access数据库文件的设计步骤。
数据库文件调用的技巧
(1)事实上,无论换成哪个Access数据库,打开数据库连接与读取表记录的步骤是相同的,其中的变量在于数据库文件的名称及表的名称,所以可以将上述程序的第3~13行改写成函数的形式,并存成一个文件如:ADOFunctions.ASP,日后要打开某个数据库文件的话,就把该文件ADOFunctions.asp 装(include)进来,代码如下:
<%
Dim objConn
’变量Filename为数据库文件名,变量Table Name为表名
Function GetRecordset(FileName,TableName)
’使用ASP的Connection 对象打开数据库
Set objConn=Server.CreateObject("ADODB.Connection")
objConn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" &_
"Data Source=" & Server.MapPath("Filename")
objConn.Open
’读取表的记录,然后存放在Record set对象"objRS"
Dim objRS
Set objRS=Server.CreateObject("ADODB.Recordset")
ObjRS.Open TableName,objConn,adOpenKeyset,adLockOptimistic,adCmdTable
End Function
%>
由上述代码可知,函数名为GetRecordSet,其返回值是存放了表记录的Record set对象实例,存成文件名为ADOFunctions.asp。现在,利用该文件就可以读取任何数据库文件的记录了。如一般读取数据库的编程可简化如下:
<HTML><BODY>
<! --#Include file="adoVBs.inc"-->
<! --#include file="ADOFunctions.asp"-->
<%
’调用GetRecordset函数取得一个Record set对象实F例,然后指派给变量objRS
Dim objRS
Set objRS=GetRecordset("Friend.mdb","data")
’将目前指针所指到的记录显示在浏览器上
If Not objRS.EOF Then
Response.Write "编号:"&objRS("编号")& "<BR>"
Response.Write "姓名:"&objRS("姓名")& "<BR>"
Response.Write "性别:"&objRS("性别")&"<BR>"
Else
Response.Write "到达数据库的结尾,已经显示完所有符合条件的记录"
End If
’关闭数据库连接并释放对象实例
ObjRS. Close
Set objRS=Nothing
ObjConn.Close
Set objConn=Nothing
%>
</BODY></HTML>
因此,只要在这句代码Set objRS=GetRecordset("Friend.mdb", "data")中改变数据库名称和表名称就可以调用任何Access数据库文件了,当然,要注意的是,后面的数据库中每个表的字段名一定要匹配。
(2)另外,无论换成哪个Access数据库,打开数据库连接与筛选表记录的步骤也是相同的,其中的变量在于SQL语句(如:"SELECT * FROM data")、数据库文件的名称及表的名称。因此同样道理,可以将这3个变量作为函数的参数,撰写GetSQLRecordset函数,并存成文件名为ADOSQLFunctions.asp,日后要用到的话,只要在程序的最前面把这个文件Include进来,就可以利用GetSQLRecordset函数打开数据库连接,同时也进行筛选表记录,该函数的返回值是存放了符合SQL语句的Record set对象实例。
代码如下:
<%
Dim objConn
Dim GetSQLRecordset
Function GetSQLRecordset(strSQL,FileName,TableName)
’使用ASP的Connection 对象打开数据库
Set objConn=Server.CreateObject("ADODB.Connection")
objConn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" &_
"Data Source=" & Server.MapPath("Filename")
objConn.Open
’从表读取符合SQL语句的记录并存放在Record set对象
Set GetSQLRecordset=Server.CreateObject("ADODB.Recordset")
GetSQLRecordset.Open_ strSQL,objConn,adOpenKeyset,adLockOptimistic,adCmdText
End Function
%>
上述代码中函数名称为:GetSQLRecordset,文件名为ADOSQLFunctions.ASP。
现在,利用该文件就可以调用任何Access数据库的连接,同时对表记录进行筛选的操作。以Friend.mdb文件为例,列出表data中所有的记录,程序代码如下:
<HTML><BODY>
<!--#include file="adoVBs.inc"-->
<!--#include file="ADOSQLFunctions.asp"-->
<%
Dim objRS
Set objRS=GetSQLRecordset("SELECT 编号,姓名,性别from_ data","Friend.mdb","data")
Do While Not objRS.EOF
Response.Write "编号:"&objRS("编号")&"<BR>"
Response.Write "姓名:"&objRS("姓名")&"<BR>"
Response.Write "性别:"&objRS("性别")&"<BR>"
Loop
objRS.Close
Set objRS=Nothing
ObjConn.Close
Set objConn=Nothing
%>
</BODY></HTML>
小结
在ASP编程中,利用好函数往往可以对我们的程序代码简单明了化,读取条理也容易维护,同时也可避免大量的重复繁杂的代码。像上述的情况,若只是简单的与数据库连接,则用第一种情况,将文件ADORecordset.asp 装(include)进来就可以了,若要对数据库中某个表的记录进行筛选或其他SQL语句操作,则用第二种情况,将文件ADOSQLRecordset.asp装进来就可以了。