Odbc连SQL Server数据库的几种方法
这篇文章是针对在CSDN论坛 中的一些想知道这方面技术的网友而写的。由于最近我本人在论坛上看到很多网友提到这个问题,所以就写了这篇文章,以飨读者。
SQL Server 是一种高效的关系数据库系统,它与Windows NT/2000及Windows 9x等操作系统紧密集成。也是今天市场上几种大型关系型数据库(SQL Server\Oracle ybase等)之一。对于今天复杂的B/S服务器系统来说,SQL Server是一个很好的选择。
一、先建立一个用来测试的数据库DB_Test
第一步:启动SQL Server7.0数据库,进入“SQL Server Enterprise Manager“管理界面,右键点击[服务器名]选择[新键][Database]进入”Database Porperties“界面。如图1所示。
图1
第二步:在图1中的“Name“里输入数据库名DB_Test。在”Automatically“前面的复选框里打勾,即便SQL Server能够自动地按需求添加数据库文件的大小。单击“确定”完成数据库的创建。
二、 接下来就以我们创建好的DB_Test数据库为例,讲怎样用Odbc连SQL Server数据库的几种方法。
ASP脚本中可以通过三种方式访问数据库:
● IDC(Internet Database Connector)方式
● ADO(ActiveX Data Objects)方式
● RDS(Remote Data Service)方式
1. Internet数据库接口(IDC)
IDC是一个传统的数据库查询工具,用来定义和执行数据库查询的SQL命令,并向浏览器前往一个指定数据格式的页面。使用IDC访问数据库最大的特点是简单,几乎不需求编程就能实现对数据库的访问。不过,今天很少使用IDC方式来连接数据库,所以我在这里就不描述了。
2.ActiveX数据对象(ADO)
ADO(ActiveX Data Object),是一组优化的访问数据库的公用对象集,它为ASP提供了完整的站点数据库处理方案,它作用在服务器端,提供含无数据库信息的主页内容,通过执行SQL命令,让用户在浏览器画面中输入,更新和删除站点数据库的信息。ADO的次要优点是易用、高速、占用内存和磁盘空间少,所以非常适合于作为服务器端的数据库访问技术。
ADO次要包括Connection,Recordset和Command三个对象, 它们的次要功用如下:
Connection对象:担任打开或连接数据库文件;
Recordset对象:存取数据库的内容;
Command对象:对数据库下达举动查询指令,以及执行SQL Server的存储过程。
利用ADO组件连接数据库有两种方式:
1、直接连接数据库方式
<%
Dim Conn,strConn
Set Conn=Server.CreateObjec(“ADODB.Connection”)
strConn=”Driver={SQL Server};Server=ServerName;”& _
“Uid=UserName;Pwd=Password;”& _
“DataBase=DatabaseName”
Conn.Open strConn,1,1
%>
2、创建数据源名(DSN)方式
配置ODBC数据源有三品种型,就是用户数据源、系统数据源和文件数据源。数据源名(DSN),依据MICROSOFT的官方文档,DSN的意思是“使用程序用以请求一个连到ODBC数据源的连接(CONNECTION)的名字”,也就是说,它是一个代表ODBC连接的符号。一个DSN配置好了,它就曾经蕴涵诸如数据库文件名、所在目录、数据库驱动程序、用户ID、密码等项目。因此,当建立一个连接时,你不用去考虑数据库文件名、它在哪儿等等,只需给出它在ODBC中的DSN即可。下面给出了创建DSN的全过程。(以WIN2000操作系统,设置系统DSN为例)
在“控制面板”中双击“管理工具“—>双击“ODBC”图标,进入“ODBC数据源管理器“界面。选择” 系统DSN “页,进入”创建新数据源“界面,如图2。
然后选择驱动程序为“SQL Server“,如图2所示。按[完成]进入”创建到SQL SERVER的新数据源“界面,输入名称为”SJY”,描述,服务器。如图3所示。
后按[下一步]。按默认设置再按[下一步],在”更改默认的数据库“选项前的复选框中打勾,选择你的数据库。如图4所示。
按[下一步],保留默认,对后按[完成],就这样,一个数据源sjy建立好了。
下面是通过数据源连接数据库的代码,为了数据库的安全起见,我们在Golbal.asa文件里写连接代码,然后在页面上调用。
<SCRIPT LANGUAGE="VBSCRIPT" RUNAT="SERVER">
Sub Application_onStart
Application("ConnectDataSourceString")="DSN=sjy;UID=sa;PWD=;"
Sub Application_onEnd
End sub
</Script>
在ASP页面上调用
<%
Dim conn,strconn
Set conn= Server.CreateObjec(“ADODB.Connection”)
Conn.open Application("ConnectDataSourceString")
%>
3、近程数据服务(RDS)
ADO虽然能够提供非常强大的数据库访问功用,但是它不支持数据近程操作(DataRemoting)。而RDS就比ADO更进一步,它支持数据近程操作。它不只能执行查询并前往数据库查询结果,而且这种结果是“动态的”, 服务器上的数据库与客户端看到的数据保持“活的连接关系”。即把服务器端的数据搬到客户端,在客户端修正数据后,调用一个数据库更新命令,就可以将客户端对数据的修正写回数据库,就象使用本地数据库一样。
由于RDS与ADO集成,RDS的底层是调用ADO来完成的,所以也可以将RDS理解为ADO的RDS,即ActiveX数据对象的近程数据服务。RDS在ADO的基础上通过绑定的数据显示和操作控件,提供应客户端更强的数据表现力和近程数据操纵功用。可以说RDS是目前基于Web的最好的近程数据库访问方式。
三、总结:
本文讲述了ASP访问数据库的三种方式,它们三者各有各的特色。IDC十分简单,使用.idc文件和.htx文件分别完成数据库的访问与输出任务,但是使用起来不灵活。ADO是ASP中推荐使用的方式,它功用强大,使用方便,是ASP的核心技术之一,但是它在提供用户近程操作数据库的功用时,比较复杂,实现起来有一定的难度。而RDS是基于ADO的,并提供近程操作数据库的强大工具。所以在需求提供高功用、高可靠性的近程数据操作功用时,RDS是更为理想的选择。