通过ASP与ACCESS数据库建立连接(附源码)(1)
前言:
如何通过ASP与数据库建立连接是一个非常现实的问题,我尽量写得非常详细。相信看了这篇文章相信您已经能够写出类似的比较简单和实用的程序了。
(一)数据库的选择:
有许多的数据库你可以选择,SQL SERVER、ACCESS(*.mdb)、EXCEL(*.xls)、FOXPRO(*.dbf)甚至普通的文本文件(*.txt)都可以达到存储数据的功能。那么到底选择什么数据库最合适呢?其中SQL SERVER是服务器级的,足以应付每天上万次的访问量。对于非服务器级的数据库建议使用ACCESS97。因为:(1)只要安装了PWS或IIS4肯定有ACCESS的ODBC驱动,即你的系统肯定支持ACCESS数据库的存取。(2)ACCESS支持的SQL指令非常齐全。(3)ACCESS ODBC驱动程序的效率非常高。虽然它不是服务器级的数据库,但是作为中小型企业内部网的数据库支持还是绰绰有余的。(4)ACCESS97在OFFICE97中就有,非常方便得到和使用。
本文就以ACCESS数据库为准介绍基于WEB的数据库存取方法。
(二)例子:我们建立一个“客户”数据库,需要保存如下的客户资料:客户名称、联络人姓名、所在城市、电话号码。
(1)首先建立ACCESS数据库customer.mdb(今后有用的)。建立如下字段:客户名称、联络人姓名、所在城市、电话号码、客户编号、时间。将表保存为"客户"(今后有用的,===>看看图)。注意:建立字段时多作了2个(客户编号、时间),因为在今后排序时要用到它们。建议今后做数据库时最好都加上这2项,不会没用的。此外,在保存表时ACCESS会询问是否建立一个住关键字,我们不需要它所以不必建立。还有:时间字段的"默认值"设成"now()",即去系统当时的时间。同时将索引项设成"有(允许重复)",含义:WEB上极有可能同时存取数据,所以允许重复,索引设成"有"可以加快排序速度。===>看看图
(2)建立递交表单add.htm:
源代码如下:
添加数据库记录
"
Response.Write "查看数据"
Response.Write "
编号 | 公司名称 | 联络人姓名 | 所在城市 | 电话号码 |
<% =CustomerList("客户编号") %> | <% =CustomerList("公司名称") %> | <% =CustomerList("联络人姓名") %> | <% =CustomerList("所在城市") %> | <% =CustomerList("电话号码") %> |
<%
set conn=server.CreateObject("adodb.connection")
conn.open "DRIVER=microsoft access driver (*.mdb);DBQ="&Server.MapPath("data/data.mdb")
%>
把上面这些代码保存为conn.asp
然后在需要连接数据库的页面前加入一句
asp连接ACCESS数据库可以有两种方式,一种是通过数据源的方式,不过此方法的移植性不好,每次移动都得更改DSN,另一种则是文件系统,能过相对路径或是相对路径,至于两种方式的详细实现你可以查看http://www.psufool.cn
它的各步骤及参数意义如下:
第一行程序:利用Server对象的MapPath函数,取得要打开数据库的完整的文件路径,并存储在变量DbPath中。这其中,数据库名是我们需要指定的参数,应该用我们要打开的数据库的实际名称替代。如果数据库名是直接作为常量出现,要用引号将其括起来,并且不能丢掉扩展名。例如数据库是Test.mdb,则该行程序成为:DbPath=Server.MapPath(“Test.mdb”)。
第二行程序:建立一个ADO对象集中的Connection对象,也即连接对象。这是建立数据库连接的初始步骤。执行这行程序后,Conn成为一个连接对象。
第三行程序:利用连接对象Conn的Open方法打开一个指定的数据库。因为我们要打开的是Access数据库,所以要指定ODBC驱动程序参数,表示要透过Access的ODBC驱动程序来访问数据库:driver={Microsoft
Access
Driver
(*.mdb)};。另一个参数dbq=
&
DbPath,运算后等效于dbq=Server.MapPath(数据库名)
,是利用了第一行的Server.MapPath(数据库名)函数,用来指定要打开的数据库文件。到这里,就已经打开了数据库名指定的数据库。如果数据库名是“test.mdb”,则打开Access数据库Test.mdb。在这一行里指定的参数,要严格按照格式原样写出,不能省略或改动,也没有可变参数。