用ASP连接数据库
微软公司的ASP加上IIS3.0就能为网站建设、INTRANET应用提供一个灵活的构建方法,他可以方便地访问ODBC兼容的数据库。
这篇文章中,我们将学到数据库的基本操作,比如建立、添加记录、删除记录、编辑记录等。
使用ASP建立的动态主页与浏览器无关,也就是说,你不论用哪种浏览器都能浏览ASP的页面,使用JSCRIPT和VBSCRIPT加上一些其他ASP元件,你就能在你的INTRANET应用中使用ASP。使用ASP不仅意味着您可以读取Access和sql server的数据库,同时也意味着你可以读取其他ODBC兼容的数据库。 使用ASP将比编写CGI快的多,对于那些习惯Visual Basic的人来说, ASP将是最好的选择。
其他的如 Chili!ASP 功能上与ASP差不多,可以用在许多WWW平台上,甚至一些Unix服务器(比如重庆太阳城,Linux ,ASP脚本用的是PERL语言。译注)。
在调试ASP代码时,我没有使用调试器,我发现大多数错误都是由于我的拼写错误引起的,或者是在HTML中嵌入变量时没有使用??。(关于在HTML中引用ASP变量值,或者输出,我在第一篇文章中有说明。译注)。
这里提供的代码仅是一个例子,不能用做一个应用。如果在没有记录时,您尝试删除记录或编辑记录,程序并没有处理这种情况。这个例子是在NT4.0上建立的,数据库用MS Access 7,你必须有32位的ODBC驱动程序。(如果你安装了IIS3。0或ACCESS,那自然是已经有了,译注)
下面的例子包含了数据库的基本操作,但是这些操作可能每一个用ASP访问数据库的人都会用到。你可以往数据库中添加记录,编辑或删除记录。
图一:数据库Microsoft Access
数据库
我用ACCESS的数据库做,建立一个数据库user.mdb
他包含两个表:TblUser,TblUserAccess.
TblUSer, 包含用户的一些信息,有以下字段: -用户名,用户登录名 ,用户口令,登录时间和访问级别 (USERNAME, USERLOGIN, USERPASSword, USERENTRYDATE, and ACCESSID). ACCESSID, 用户级别指向表TblUserAccess中的 ACCESSID字段. 表 TblUserAccess 用来定义访问级别- ACCESSDESC
DSN
一旦你建好了数据库,你需要为数据库建立一个DSN入口,不防给他取名叫:UserDB1. 照下面的步骤去做:(关于DSN,我将在本文末做介绍,译注)
单击?开始?,选设置控制面板。
双击图标 32位 ODBC,将弹出一个对话框,选标签 System DSN
单击 Add 添加一个 DSN 入口, 选择 Microsoft Access Drive.确认。
在 Data Source Name 栏里输入 UserDB1, 然后单击Select 选择数据库,你可以按Browse 来选中 users.mdb.你可以把数据库放在任何位置,比如建立一个目录来放吧: c:\inetsrv\wwwroot\users\users.mdb
图二:连接数据库,方法一
连接数据库 方法一
ASP提供两种方法来访问数据库。在第一中方法中,你首先必须建立一个连接,之后,你可以加载任何合法的SQL语句。最后,关闭连接。 一些代码你可以直接拿来用。图二中,用?UserDB1?做DSN,建立连接后,可以用Execute加载任何合法的SQL语句。之后,在一个循环中引用数据。必须注意的是,在最后一定要记住关闭连接。
图三:连接数据库 方法二
SUB Session_OnStart
'---- Open ADO connection to database
Conn.Open UsersDB1, userdblogin,userdbpassword
END SUB
图四:文件Global.asa 中用于连接的串
Conn.Open UserDB1, userdblogin,userdbpassword
连接数据库 方法二:
另外一种方法是在用户的SESSION中建立连接。当SESSION结束时,关闭连接。这要用到文件Global.asa.每一个基于ASP的INTRANET应用都可以有一个global.asa,它应当存放在这个应用的根目录下。在 global.asa 文件中可以定义四个事件处理程序,四个事件是:- Application-Start , Session-Start, Application-End 和 Session-End. 你可以在事件session-Start 中打开数据库连接,在事件Session-End 中关闭连接。
在图四中,用用户名?userdblogin,口令userdbpassword建立了一个到DSN UserDB1的连接。在整个SESSION中都可以使用连接Conn.
大家可以看例子default.asp 和文件global.asa.
图五:取得表单元素的值.
Action = Request.Form(Action)
从表单中取得信息
在基于ASP的应用中,你可以将ASP的例程代码放在一个专门的文件中,然后在需要的地方用include包含进来。图五中取得表单元素Action的值
图六:生成控制条