1 数据库连接
a.数据库的连接(ACCESS和SQL)
在APS脚本中可以通过3中方式访问数据库:
∈IDC (Internet Database Connector)方式;
∈ADO (ActiveX Data Object)方式;
∈RDS (Remote Data Service)方式;
从概念上来讲,这3种方式对数据库的访问都是通过IIS来完成的。Web浏览器用HTTP协议向IIS提交请求。Internet信息服务器执行访问数据库的操作,并以一个HTML格式的文档作为回答。这里我们主要讲解使用ADO连接数据库的方法。
两个接口 1、 OLE DB 2、ODBC
OLE DB(Object Linking & Embedding Database)
它是一个最新数据访问接口,除了可以访问关系型数据库,还可以访问非关系型数据库(如Excel、Email)。
ODBC(Open Database Connectivity)
它是基于SQL的,主要用于处理关系型数据库,但对非关系型数据库就无能为力了。
ADO是OLE DB / ODBC的使用者,它提供了对OLE DB数据源的应用程序级的访问。在ASP中,可以使用ADO通过OLE DB的数据库驱动程序直接访问数据库,也可以编写紧凑简明的脚本以便连接到ODBC兼容的数据库,这样ASP程序员就可以访问任何与ODBC兼容的数据库,如SQL Server, Oracle, Access等。
简单的流程图
=========================================================
用户浏览器
∧
|
ASP网页
∧
|
ADO
∧
|
∨
OLE DB / ODBC
∧
|
∨
数据库
=========================================================
在创建数据库脚本之前,必须提供一条使ADO定位、标识和与数据库通信的途径。即在ODBC中添加相应的数据库驱动程序,并创建相应的DSN(Data Source Name,数据源名——DSN是一个代表ODBC连接的符号,它隐藏了诸如数据库名、所在目录、数据库驱动程序、用户ID、密码细节。)定位和表示特定的ODBC兼容数据库,将信息冲web应用程序传递给数据库。
怎样创建配置数据源名:(Windows XP Pro)
1. 开始—>设置—>控制面板—>管理工具—>数据源 (ODBC),出现以下对话窗口

2. 设置一个DSN(数据源—这里以连接Access数据库为例)
选择系统DSN,添加一个数据源,选择数据源的驱动程序(1-2)

选择Microsoft Access Driver (*.mdb)
为数据源命名(1-3)
单击选择按钮,选择(定位)Access数据库(1-4)

然后单击确定,这样我们就配置好了一个DSN
说明:我们还可以为DSN设置用户权限,具体方法是在1-3中点“高级”按钮,就可以设置用户名和密码。
然后我们再看看调用这个DSN的ASP代码:
oConn.Open "dsn=FcNews;"
DSN-less连接方法:
set adocon=Server.Createobject("adodb.connection")
adoconn.Open"Driver={Microsoft Access Driver(*.mdb)};DBQ="& _
Server.MapPath("数据库所在路径")
说明:其实SQL数据库也可以建立DSN,方法同ACCESS数据库很类似,这里就不重复说明。如果条件允许,推荐大家用DSN连接数据库,因为这里(oConn.Open "dsn=FcNews;"隐藏了书库的地址等信息,即使你的ASP源代码泄露,一般人们很难猜出你的服务器上数据库的路径。不过由于一般大家是使用的虚拟主机,所以一般才用了DSN-LESS方法。还有下面介绍的方法,连接数据库)
下面我又给出了我们常用的OLEDB的连接代码
'oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("" & AccDBPath & "")
SQL数据库的OLE DB连接代码
oConn.Open "Provider=SQLOLEDB.1;Server=127.0.0.1;UID=sa;PWD=mydotcom;Database=" & SQLDBName & ""
最后在这里我给一个简单的连接数据库的函数
复制内容到剪贴板
代码:
<%
' ============================================
' 以下为数据库相关函数
' ============================================
' 初始化数据库连接对象
' 使用原则:最迟调用,最早释放
' ============================================
Dim oConn, oRs, sSql
Dim Rs, Sql
'=============================================
' 函数功能:建立数据库的连接
' 函数名称:oDBConnBegin(DBType)
' 参数说明:DBType -- 数据库的类型
' ConType -- 连接类型(DSN或者OLE DB)
' DBName -- 数据库名称(数据源名称)
'=============================================
Sub oDBConnBegin(DBType,ConType,DBName)
' 如果数据库对象已打开,不要再打开
If IsObject(oConn) = True Then Exit Sub
' 你可以不需要打开数据库连接对象而直接打开记录集对象,但如果你需要打开多个记录集对象的话,效率是很低的。
' 如果你不创建一个数据库连接对象,ADO会在每个记录集打开时自动创建一个新的数据库连接对象,就算你用的是相同的SQL语句。
Set oConn = Server.CreateObject("ADODB.Connection")
On Error Resume Next
' 选择不同的数据库连接类型
Select Case DBType
Case "Acc"
If C Then
oConn.Open = "dsn=" & DBName
ElseIf C Then
oConn.Open = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("" & DBName & "")
End If
Case "SQL"
If C Then
oConn.Open = "dsn=" & DBName
ElseIf C Then
oConn.Open "Provider=SQLOLEDB.1;Server=127.0.0.1;UID=sa;PWD=007007;Database=" & DBName & ""
End If
End Select
If Err.Number > 0 Then
' 显示错误信息,并且发送邮件通知管理员
Call DBConnError(Err)
' 完全地退出正在运行的脚本
Response.End()
End If
Set oRs = Server.CreateObject( "ADODB.Recordset" )
End Sub
'=============================================
' 函数功能:释放数据库连接对象
' 函数名称:oDBConnEnd()
'=============================================
Sub oDBConnEnd()
On Error Resume Next
oRs.Close
Set oRs = Nothing
oConn.Close
Set oConn = Nothing
End Sub
'=============================================
' 函数功能:数据库连接错误处理
' 函数名称:DBConnError(ErrInfo)
' 参数说明:ErrInof--系统提示的错误信息
'=============================================
Sub DBConnError(ErrInfo)
Response.write("数据库连接错误:" & ErrInfo & "<br>")
Response.write("请发送邮件通知<a href='mailto:" & strAdminEmail & "'>网站管理员</a>!")
Response.End()
End Sub
%>
怎么样,现在你对数据库的连接是否有了一些了解呢?当然,由于水平有限,如果有什么说的不对的地方还望大家原谅和指教。