|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
ASP数据库连接的实现 摘 要:本文给出了ASP中数据库连接的多种实现方式。 要害词:ASP;ADO;OLE-DB;ODBC;数据库连接 1 引言 ASP是目前最流行的Web程序设计技术之一,它使用ADO技术对数据库进行存取。ADO是Microsoft目前主要的数据存取技术,它是Microsoft各种数据存取技术,如ODBC、DAO、RDO、OLE-DB演化发展的结果。 ADO是封装了OLE-DB复杂接口的COM对象,它以极为简朴的COM接口来存取各种不同的数据。ADO数据存取的架构图。从图中可以看出,ADO可以直接藉由OLE-DB来存取不同数据源的数据,也可以间接籍由ODBC来存取关系型数据源的数据。本文针对这两种方法初步探讨ASP应用程序中数据库连接的实现。 ADO数据存取架构 Application/Browser ADO OLE-DB ODBC SQL Data Non SQL Data Mainframe and Legancy Data 2 Connection对象 ADO中的Connection对象代表与底层数据供给程序的一个连接,它保持着数据供给程序的信息。在ASP应用环境下,Connection对象代表从Web服务器到数据库服务器的一个连接。Connection对象调用Open方式来实现与数据库的连接,它的语法如下: Connection.Open [ConnectionString],[UserID],[Password],[Options] Open方式的参数及说明如表1: 表 1 Open方式的参数及说明 参 数 说 明 ConnectionString 包含连接细节的字符串。可以是ODBC DSN的名称、数据链接文件的名称或真实的连接细节。可选参数。 UserID 连接期间,用户使用的名字。覆盖连接字符串中提供的任何用户名。可选参数。 Password 用户的口令。覆盖连接字符串中提供的任何口令。可选参数。 Options 可以是adAsyncConnect,指定异步地建立连接。忽略这个参数,则建立一个同步连接。注:因为脚本语言不能接收来自ADO的事件,所以异步连接不用于ASP环境,一般忽略这个参数。 从表1可以看出, Open方式实现与数据库连接的要害,是给出准确的ConnectionString。以下以SQL Server2000数据库为例,给出各种连接方法下的ConnectionString。 3 OLE-DB连接方法 3.1 字符串方法 ConnectionString="Provider=SQLOLEDB.1; Data Source=YourSrc; UID=YourUid; PWD=YourPwd; Database=YourDB" 或 ConnectionString="Provider=SQLOLEDB.1; Data Source=YourSrc; User ID=YourUid; Password=YourPwd; Initial Catalog=YourDB" 其中,Provider为服务于连接的底层OLE-DB数据供给程序的名称;Data Source为服务于底层数据供给程序的数据源名称;UID或User ID为连接时使用的用户名;PWD或Password为连接时使用的密码;Database或Initial Catalog为位于数据库服务器上的一个特定数据库。 3.2 数据链接文件方法 创建一个空文本文件,将其扩展名改为.udl来创建一个数据链接文件。双击该文件打开Data Link Properties对话框,在Provider页选择提供者(不要选择基于ODBC的提供者,因为这样实际上是间接藉由ODBC实现数据库连接),在Connection页指定实现连接的细节。使用数据链接文件进行连接的ConnectionString如下: ConnectionString="File Name=C:YourFile.udl" 用记事本打开数据链接文件,可以看到第三行文本是一个连接字符串,指定了连接的细节。假如在Connection页选中了“Allow saving password”,则在该文件中也会记录用户的密码信息。 4 ODBC连接方法 使用ODBC连接方法,首先要配置ODBC数据源。ODBC数据源配置成功后,就可以相应指定下面介绍的连接字符串进行数据库连接。 4.1 ODBC的系统DSN连接方法 ConnectionString="DSN=SysDSNName;UID=YourUid;PWD=YourPwd;Database=YourDB" 其中,DSN为系统DSN的名称,其它参数与3.1中介绍的参数一样。 4.2 ODBC的文件DSN连接方法 ConnectionString="FileDSN=FileDSNName;UID=YourUid;PWD=YourPwd;Database=YourDB" 其中,FileDSN为文件DSN的名称,其它参数与3.1中介绍的参数一样。 用记事本打开相应的.dsn文件(一般位于C:Program FilesCommon FilesODBCData Sources目录下),可以看到,类似于数据链接文件,该文件中也指定了连接的细节。 4.3 ODBC的无DSN连接方法 ConnectionString="Driver={SQL Server};Server=YourServer; UID=YourUid;PWD=YourPwd;Database=YourDB") 此方法不用配置ODBC数据源。其中,Driver为ODBC驱动程序名称,Server为数据库服务器名称,其它参数与3.1中介绍的参数一样。 4.4 数据链接文件方法 首先,采用3.2中的方式创建数据链接文件。但进行文件配置时,在Provider页中选择基于ODBC的提供者――Microsoft OLE DB Provider for ODBC Drivers。此方法的ConnectionString与3.2中介绍的一样。 5 实例 下面是采用OLE-DB的字符串方法,连接到SQL Server2000数据库的示例代码: <% ConnectionString="Provider=SQLOLEDB.1; Data Source=YourSrc; UID=YourUid; PWD=YourPwd; Database=YourDB";初始化连接字符串 Set Conn=Server.CreateObject("ADODB.Connection") ;创建Connection对象 Conn.Open ConnectionString ;调用Open方式,建立连接 … ;进行数据存取操作 Conn.Close ;关闭连接 Set Conn=Nothing ;释放Connection对象 %> 需要注重的是,应尽可能晚的建立连接,同时又尽可能早的关闭连接,这样保证连接打开的时间最短,可以充分发挥OLE-DB的连接缓冲池的作用,节省连接资源;另外,在实际应用中,为避免在每个ASP页面中都输入ConnectionString中的连接细节(这会给程序维护带来麻烦),一般使用包含文件或连接状态来存储ConnectionString,方式如下。 (1)使用包含文件 新建一个ASP文件,不妨命名为Connection.asp,并在其中输入以下代码: <% ConnectionString="Provider=SQLOLEDB.1; Data Source=YourSrc; UID=YourUid; PWD=YourPwd; Database=YourDB" %> 在ASP页面顶端加入这一行语句: <!--#Include File="Connection.asp"--> 就可以直接在该页中使用ConnectionString。 (2)使用连接状态 在global.asa文件中加入下面的代码: <% Sub Application_Onstart() ConnectionString="Provider=SQLOLEDB.1; Data Source=YourSrc; UID=YourUid; PWD=YourPwd; Database=YourDB" Set Application("ConnectionString")= ConnectionString End Sub %> 此方式将ConnectionString存储在应用程序变量中,所以,在ASP页面中可以使用如下代码实现与数据库的连接: <% Set Conn=Server.CreateObject("ADODB.Connection") Conn.Open Application("ConnectionString") %> 6 对比各种连接方法 尽管籍由OLE-DB和ODBC都可以实现对数据的存取,但从ADO数据存取架构图(图2)中可以看出,使用ODBC的方法要比OLE-DB的方法多一个层,因此,当访问一样的数据时,ODBC的方法可能会比OLE-DB速度慢一些。 OLE-DB的字符串连接方法与ODBC的系统DSN、文件DSN连接方法相比,省去了建立ODBC数据源的步骤,操作更为简洁。 另外,从形式上我们又可以把连接方法分为:字符串、数据链接文件、DSN三种方法。直接的连接字符串方法可能速度快一些,因为它提供所有的连接细节。数据链接文件方法需要从文件中读出连接细节,DSN方法需要从注册表中读取ODBC数据源的连接细节。 综上,在ASP应用程序中,OLE-DB的连接方法要优于ODBC的连接方法;字符串连接方法要优于非字符串连接方法。 返回类别: 教程 上一教程: 防止别人在QUERYSTRING中加入DELETE或其他字符删除你的数据库内容 下一教程: 用ASP修改NT登陆密码 您可以阅读与"ASP数据库连接的实现"相关的教程: · 断开的数据库连接的例子 · 断开的数据库连接的一个例子 · ASP中各种数据库连接代码 · ASP与数据库连接方式的具体讲解 · 一个测试数据库连接的函数 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |