ADO基础及用Asp访问数据库

/*以前给老师当助手写教程,现把个别篇章放上来*/

5.5 ADO基础
ADO(ActiveX Data Objects)是Microsoft公司推出的一项资料访问技术。使用ADO,可以编写紧凑简明的脚本连接到OLE DB兼容的数据源,如数据库、电子表格、顺序数据文件或电子邮件目录等。可以把它和ASP结合起来,建立提供数据库信息的网页内容,对数据库进行查询、插入、更新、删除等操作。

5.5.1 Connection 对象
Connection对象用于建立和管理应用程序与数据源间的连接,也可用它来执行一个命令。Connection对象的属性和方法可用来打开和关闭数据库的连接,在ADO中,可以有多个Connection对象,分别指向不同的数据源。

5.5.2 Connection 对象的使用

在使用之前必须创立该对象,其格式为:
<% Set cn= Server.CreateObject("ADODB.Connection") %>
字符串"ADODB.Connection"是用来创建Connection物件的PROGID。另外,也可用<OJECT>标记来创建。例如:
<OBJECT RUNAT=Server ID=cn PROGID="ADODB.Connection"></OBJECT>
创建Connection对象后,就可以调用Open方法来建立与资料源的连接了。对于SQL服务器中的Guests数据库和Microsoft Access数据库文件Guests.mdb,可用以下几种方式打开:

(1)使用驱动程序
<% cn.Open"Driver={SQL Server};Database=Guest;Server=(Local);UID=sa;PWD=" %>
其中,Driver指定数据源驱动程序的名称,SQL Server使用{SQL Server}。Database指定所请求的数据库。Server指定数据源服务器名称,设为Local时,表示使用SQL Server的本地副本。

<%cn.Open"DBQ="&Server.mappath("Guests.mdb")&";Driver={Microsoft Access Driver(*.mdb) "} %>
上面是连接Microsoft Access数据库文件的写法,其中DBQ是指向Access数据库的地址。

(2 ) 使用OLE DB的Provider
<% cn.Open"Provider=SQLOLEDB.1; User ID=sa; Password=; Initial Catalog=Guest; Data Source=MLS" %>
其中,Provider指定数据提供者。Initial Catalog指向在SQL Server上的待访问的数据库。Data Source指定SQL Server的计算机名或IP地址。

<% cn.Open"Provider=Microsoft.jet.oledb.4.0;Data Source=" &Server.mappath("Guests.mdb") %>
上面是用Provider连接Microsoft Access数据库文件的写法

( 3 ) 利用ODBC的DSN
我们以SQL Server为例,首先在“控制面板”中选中“ODBC数据源”,出现如图5.10所示接口。选择“系统DSN”选项卡。

ADO基础及用Asp访问数据库
图5.10 ODBC数据源

ADO基础及用Asp访问数据库
图5.11 “创建数据源”的对话框,选择SQL Server

ADO基础及用Asp访问数据库
图5.12 输入DSN的名称并指定SQL Server所在服务器

ADO基础及用Asp访问数据库
图5.13 选择SQL Server验证登陆ID方式

ADO基础及用Asp访问数据库
图5.14 选择数据库文件

ADO基础及用Asp访问数据库
图5.15 其它一些设置

创建DSN连接后,可以创建Connection对象,用Open方法来建立数据源连接了。
可以先设置ConnectionString 属性,再调用Open方法。例如:
<% Set cn= Server.CreateObject("ADODB.Connection")
cn.ConnectionString="DSN=Guests;UID=sa;PWD="
cn.Open %>
或者直接将连接串作为参数来调用:
<% Set cn= Server.CreateObject("ADODB.Connection")
cn.Open="DSN=Guests;UID=sa;PWD=" %>

例5—6 SQL数据库中表Guests中的所有记录,表Guests定义如表5.16所示。


① 向表Guests中插入一条“Name:"李四",PassWord:"li"”的记录。
程序如下:
<% @ language=vbscript %>
<% Set cn= Server.CreateObject("ADODB.Connection")
cn.Open"Provider=SQLOLEDB.1; User ID=sa; Password=; Initial Catalog=Guest; Data Source=MLS"
cn.execute"insert into Guests(name.password)value( '李四','li' ) " '用insert方法插入一条记录
cn.close '关闭数据库连接
%>
② 查询Guests表的所有记录
<% Set cn= Server.CreateObject("ADODB.Connection")
cn.Open"Provider=SQLOLEDB.1; User ID=sa; Password=; Initial Catalog=Guest; Data Source=MLS"
Set Rst=cn.execute("select * from Guests") '产生一个记录集,并赋值
Do While not Rst.eof '当记录集没处理完时
Response.Write "Name:"&Rst("Name")&" "
Response.Write "PassWord:"&Rst("PassWord")&"<br>"
Rst.MoveNext '指针指向下一条记录
Loop '循环继续
Rst.close
cn.close
%>
③ 删除User表中"明明"记录
<% Set cn= Server.CreateObject("ADODB.Connection")
cn.Open"Provider=SQLOLEDB.1; User ID=sa; Password=; Initial Catalog=Guest; Data Source=MLS"
cn.execute("delete * from Guests Where Name='明明'") '用execute方法执行SQL删除语句
cn.close
%>

例5—7用记录集读取SQL数据库中表Guests的所有记录。
程序如下:
<% @ language=vbscript %>
<!--#include file="Check.asp"--> '用于包含所需要调用的文件,若目录不同,使用Virtual参数
<% Set cn= Server.CreateObject("ADODB.Connection")
cn.Open"Provider=SQLOLEDB.1; User ID=sa; Password=; Initial Catalog=Guest; Data Source=MLS"
Set Rst=Server.CreateObject("Adodb.Recordset") '创建一个记录集
Rst.Open " select * from Guests " ,cn,1,3 '赋值给记录集,1,3是定义锁定类型和游标类型
Do While not Rst.eof '当记录集没处理完时
Response.Write "Name:"&Rst.fields("Name")&" "
Response.Write "PassWord:"&Rst.fields("PassWord")&"<br>"
Rst.MoveNext '指针指向下一条记录
Loop
Rst.close 'Close方法关闭该记录集并且释放所有在该记录集内的饱含数据
Cn.close
%>

例5—8 利用记录集和表单向数据表添加记录。

步骤1、在表单里面建立两个文本输入框和一个提交按钮。
<form name="form1" method="get" action="">
<p>
<input type="text" name="name">
<input type="text" name="password">
</p>
<p>
<input type="submit" name="Submit" value="提交">
</p>
</form>

步骤2、编写代码事件检索Form集合(即表单提交的数据)并将其写进Guest表中。
<% if Request.ServerVariables("QUERY_STRING")<>""then%>
<%if Request.QueryString("name")<>"" and Request.QueryString("password")<>""then%>
<% Strname =Request.QueryString("name")
Strpassword =Request.QueryString("password")
Set CN =Server.CreateObject("ADODB.connection")
CN.open "DBQ ="& Server.MapPath("user.mdb")& ";Driver ={Microsoft SQL Driver(*.mdb)}"
Set RS=Server.CreateObject("ADODB.Recordset")
RS.open "select * form guest",cn,1,3
RS.addnew
RS("name")=Strname
RS("password")=Strpassword
RS.update
RS.close
CN.close
%>
<%end if%>
<%end if %>

步骤3、将步骤2的代码放到步骤1的前面,即可实现一个简单的数据的插入过程。

5.5.3 Command对象和Parameter对象
Command对象是ADO的核心,它含有使用连接、处理查询以及返回记录集所需要的全部信息。

⑴ 用Command对象创建记录集

例5—9 利用Command对象实现Guests表的浏览

<% @ language=vbscript %>
<% Set cn= Server.CreateObject("ADODB.Connection")
cn.Open"Provider=SQLOLEDB.1; User ID=sa; Password=; Initial Catalog=Guest; Data Source=MLS"
Set Mycomm= Server.CreateObject("ADODB.Command") '创建了命令对象的一个实例Mycomm
Mycomm.commandtext= 'select * from Guests' 'CommandText属性指定要执行什么SQL语句
Set Mycomm.ativeconnection=cn 'ActiveConnection属性把命令对象和一个打开的数据连接联系在一起
Set Rst=Mycomm.execute '调用Execute方法执行这个命令
Do while not Rst.eof
Response.Write "Name:"&Rst ("Name")&" "
Response.Write "PassWord:"&Rst ("PassWord")&"<br>"
Rst.MoveNext
Loop
Rst.close
Cn.close
%>



你可能感兴趣的:(sql,sql,server,Microsoft,VBScript,asp)