ADO基础及用Asp访问数据库

17 篇文章 0 订阅
12 篇文章 0 订阅
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”选项卡。


图5.10   ODBC数据源


图5.11  “创建数据源”的对话框,选择SQL Server


图5.12  输入DSN的名称并指定SQL Server所在服务器


图5.13  选择SQL Server验证登陆ID方式


图5.14  选择数据库文件


图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
%>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值