ADO学习教程

ADO 教程

·         Next Page

在我们的 ADO 教程中,您将学到有关 ADO 的知识,以及如何使用 ADO 从您的网站访问数据库。

开始学习 ADO

ADO 参考手册

在 W3School,我们为您提供完整的 ADO 参考手册,其中包括内建对象,以及它们的属性和方法。

ADO 参考手册

ADO 实例

通过实例来学习!因为 ASP 脚本只能在服务器端执行,所以你无法在浏览器中查看 ASP 代码,你能看到的仅仅是由 ASP 输出的纯粹的 HTML 代码。

在 W3School,每个实例均可显示出以往被隐藏的 ASP 代码。这样,您就可以更容易理解它们的工作原理。

ADO 实例

·         Next Page

ADO 简介

·         Previous Page

·         Next Page

ADO 被用于从网页访问数据库。

您应当具备的基础知识

在继续学习之前,您需要对下面的知识有基本的了解:

·   WWW、HTML 以及对网站构建的基本了解

·   ASP(动态服务器页面)

·   SQL(结构化查询语言)

如果您希望首先学习这些项目,请在我们的 首页 访问这些教程。

什么是 ADO?

·   ADO 是一项微软的技术

·   ADO 指 ActiveX 数据对象(ActiveX Data Objects)

·   ADO 是一个微软的 Active-X 组件

·   ADO 会随微软的 IIS 被自动安装

·   ADO 是一个访问数据库中数据的编程接口

从 ASP 页面访问数据库

从一个 ASP 页面内部访问数据库的通常的方法是:

1. 创建一个到数据库的 ADO 连接

2. 打开数据库连接

3. 创建 ADO 记录集

4. 从记录集提取您需要的数据

5. 关闭记录集

6. 关闭连接

·         Previous Page

·         Next Page

ADO 数据库连接

·         Previous Page

·         Next Page

在从某个网页访问数据之前,必须先建立一个数据库连接。

创建一个 DSN-less 数据库连接

连接到某一个数据库的最简单的方法是使用一个 DSN-less 连接。DSN-less 连接可被用于您的站点上的任何微软 Access 数据库。

假设您拥有一个名为 "northwind.mdb" 的数据库位于 "c:/webdata/" 的 web 目录中,您可以使用下面的 ASP 代码连接到此数据库:

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

%>

注意,在上面的例子中,您必须规定微软的 Access 数据库驱动程序(Provider),以及此数据库在计算机上的物理路径。

创建一个 ODBC 数据库连接

假设您拥有一个名为 "northwind" 的 ODBC 数据库,您可以使用下面的 ASP 代码连接到此数据库:

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Open "northwind"

%>

通过一个 ODBC 连接,您可以连接到您的网络中任何计算机上的任何数据库,只要 ODBC 连接是可用的。

到 MS Access 数据库的 ODBC 连接

下面为您讲解如何创建到一个 MS Access 数据库的连接:

1. 打开控制面板中的 ODBC 图标

2. 选择系统 ODBC 选项卡

3. 点击 ODBC 选项卡中的添加按钮

4. 选择 Driver to Microsoft Access,然后点击完成按钮

5. 在下一个窗口中点击“选择”按钮来定位数据库

6. 为此数据库赋予一个数据源名称(Data Source Name,DSN)

7. 点击"确定"

注意:此配置必须在您的网站所在的计算机上完成。假如您正在自己的计算机上运行PWS或者IIS,此架构是可以运行的,但是假如您的网站位于一台远程的服务器,您就必须拥有此服务器的物理访问权限,或者请您的 web 主机提供商为您做这些事情。

ADO 连接对象(ADO Connection Object)

ADO 连接对象用来创建到某个数据源的开放连接。通过此连接,您可以对此数据库进行访问和操作。

查看此连接对象的所有方法和属性。

·         Previous Page

·         Next Page

ADO Recordset(记录集)

·         Previous Page

·         Next Page

如需读取数据库的数据,那么其中的数据必须首先被载入一个记录集中。

创建一个 ADO 表记录集(ADO Table Recordset)

在 ADO 数据库连接创建之后,如上一章所述,接下来就可以建立一个 ADO 记录集了。

假设我们有一个名为 "Northwind" 的数据库,我们可以通过下面的代码访问数据库中的 "Customers" 表:

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

 

set rs=Server.CreateObject("ADODB.recordset")

rs.Open "Customers", conn

%>

创建一个 ADO SQL 记录集 (ADO SQL Recordset)

我们也可使用 SQL 访问 "Customers" 表中的数据:

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

 

set rs=Server.CreateObject("ADODB.recordset")

rs.Open "Select * from Customers", conn

%>

从记录集中提取数据

在记录集被打开后,我们可以从记录集中提取数据。

假设我们用一个名为 "Northwind" 的数据库,我们可以通过下面的代码访问数据库中 "Customers" 表:

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

 

set rs=Server.CreateObject("ADODB.recordset")

rs.Open "Select * from Customers", conn

 

for each x in rs.fields

   response.write(x.name)

   response.write(" = ")

   response.write(x.value)

next

%>

ADO 记录集对象(ADO Recordset Object)

ADO Recordset 对象可被用来容纳来自数据库表的记录集。

查看 ADO Recordset 对象的所有方法和属性。

·         Previous Page

·         Next Page

ADO 显示

·         Previous Page

·         Next Page

显示来自记录集中的数据的最常用的方法,就是把数据显示在 HTML 表格中。

实例

显示记录

如何首先创建一个数据库连接,然后创建一个记录集,然后把其中的数据显示在HTML中。

在 HTML 表格中显示记录

如何把数据表中的数据显示在HTML表格中。

向 HTML 表格添加标题

如何向HTML表格添加标题,以使其可读性更强。

向 HTML 表格添加颜色

如何向HTML表格添加颜色,以使其更加美观。

显示字段名称和字段值

我们有一个名为 "Northwind" 的数据库,并且我们希望显示出 "Customers" 表中的数据(记得以 .asp 为扩展名来保存这个文件):

<html>

<body>

 

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

 

set rs = Server.CreateObject("ADODB.recordset")

rs.Open "SELECT * FROM Customers", conn

 

do until rs.EOF

  for each x in rs.Fields

    Response.Write(x.name)

    Response.Write(" = ")

    Response.Write(x.value & "<br />")

  next

  Response.Write("<br />")

  rs.MoveNext

loop

 

rs.close

conn.close

%>

 

</body>

</html>

在一个 HTML 表格中显示字段名称和字段的值

我们也可以通过下面的代码把表 "Customers" 中的数据显示在一个 HTML 表格中:

<html>

<body>

 

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

 

set rs = Server.CreateObject("ADODB.recordset")

rs.Open "SELECT Companyname, Contactname FROM Customers", conn

%>

 

<table border="1" width="100%">

<%do until rs.EOF%>

   <tr>

   <%for each x in rs.Fields%>

      <td><%Response.Write(x.value)%></td>

   <%next

   rs.MoveNext%>

   </tr>

<%loop

rs.close

conn.close

%>

</table>

 

</body>

</html>

向 HTML 表格添加标题

我们希望为这个 HTML 表格添加标题,这样它就更易读了:

<html>

<body>

 

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

 

set rs = Server.CreateObject("ADODB.recordset")

sql="SELECT Companyname, Contactname FROM Customers"

rs.Open sql, conn

%>

 

<table border="1" width="100%">

  <tr>

  <%for each x in rs.Fields

    response.write("<th>" & x.name & "</th>")

  next%>

  </tr>

  <%do until rs.EOF%>

    <tr>

    <%for each x in rs.Fields%>

      <td><%Response.Write(x.value)%></td>

    <%next

    rs.MoveNext%>

    </tr>

  <%loop

  rs.close

  conn.close

  %>

</table>

 

</body>

</html>

·         Previous Page

·         Next Page

ADO 查询

·         Previous Page

·         Next Page

我们可以使用 SQL 来创建查询,这样就可以指定仅查看选定的记录和字段。

实例

显示 "Companyname" 以 A 开头的记录

如何仅仅显示 "Customers" 表的 "Companyname" 字段中以 A 开头的记录。

显示 "Companyname" 大于 E 的记录

如何仅仅显示 "Customers" 表的 "Companyname" 字段中大于 E 的记录。

仅显示西班牙的客户

如何仅仅显示 "Customers" 表中的西班牙客户。

让用户来选择筛选标准

让用户根据国别来选择客户

显示选定的数据

我们希望仅仅显示 "Customers" 表的 "Companyname" 字段中以 A 开头的记录:

<html>

<body>

 

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

 

set rs=Server.CreateObject("ADODB.recordset")

sql="SELECT Companyname, Contactname FROM Customers

WHERE CompanyName LIKE 'A%'"

rs.Open sql, conn

%>

 

<table border="1" width="100%">

  <tr>

  <%for each x in rs.Fields

    response.write("<th>" & x.name & "</th>")

  next%>

  </tr>

  <%do until rs.EOF%>

    <tr>

    <%for each x in rs.Fields%>

      <td><%Response.Write(x.value)%></td>

    <%next

    rs.MoveNext%>

    </tr>

  <%loop

  rs.close

  conn.close%>

</table>

 

</body>

</html>

·         Previous Page

·         Next Page

ADO 排序

·         Previous Page

·         Next Page

我们可以使用SQL来规定如何对记录集中的数据进行排序。

实例

根据指定的字段名处对记录进行升序排序

如何根据指定字段名对数据进行排序

根据指定的字段名处对记录进行降序排序

如何根据指定字段名对数据进行排序

让用户来选择根据哪列进行排序

让用户来选择根据哪列进行排序

对数据进行排序

我们希望显示 "Customers" 表中的"Companyname"和"Contactname"字段,并根据"Companyname"进行排序(请记得用.asp为后缀保存):

<html>

<body>

 

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

 

set rs = Server.CreateObject("ADODB.recordset")

sql="SELECT Companyname, Contactname FROM

Customers ORDER BY CompanyName"

rs.Open sql, conn

%>

 

<table border="1" width="100%">

  <tr>

  <%for each x in rs.Fields

    response.write("<th>" & x.name & "</th>")

  next%>

  </tr>

  <%do until rs.EOF%>

    <tr>

    <%for each x in rs.Fields%>

      <td><%Response.Write(x.value)%></td>

    <%next

    rs.MoveNext%>

    </tr>

  <%loop

  rs.close

  conn.close%>

</table>

 

</body>

</html>

·         Previous Page

·         Next Page

ADO 添加记录

·         Previous Page

·         Next Page

我们可以使用 SQL 的 INSERT INTO 命令向数据库中的表添加记录。

向数据库中的表添加记录

我们希望向 Northwind 数据库中的 Customers 表添加一条新的记录。我们首先要创建一个表单,这个表单包含了我们需要从中搜集数据的输入域:

<html>

<body>

 

<form method="post" action="demo_add.asp">

<table>

<tr>

<td>CustomerID:</td>

<td><input name="custid"></td>

</tr><tr>

<td>Company Name:</td>

<td><input name="compname"></td>

</tr><tr>

<td>Contact Name:</td>

<td><input name="contname"></td>

</tr><tr>

<td>Address:</td>

<td><input name="address"></td>

</tr><tr>

<td>City:</td>

<td><input name="city"></td>

</tr><tr>

<td>Postal Code:</td>

<td><input name="postcode"></td>

</tr><tr>

<td>Country:</td>

<td><input name="country"></td>

</tr>

</table>

<br /><br />

<input type="submit" value="Add New">

<input type="reset" value="Cancel">

</form>

 

</body>

</html>

当用户按下确认按钮时,这个表单就会被送往名为 "demo_add.asp" 的文件。文件 "demo_add.asp" 中含有可向 Customers 表添加一条新记录的代码:

<html>

<body>

 

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

 

sql="INSERT INTO customers (customerID,companyname,"

sql=sql & "contactname,address,city,postalcode,country)"

sql=sql & " VALUES "

sql=sql & "('" & Request.Form("custid") & "',"

sql=sql & "'" & Request.Form("compname") & "',"

sql=sql & "'" & Request.Form("contname") & "',"

sql=sql & "'" & Request.Form("address") & "',"

sql=sql & "'" & Request.Form("city") & "',"

sql=sql & "'" & Request.Form("postcode") & "',"

sql=sql & "'" & Request.Form("country") & "')"

 

on error resume next

conn.Execute sql,recaffected

if err<>0 then

  Response.Write("No update permissions!")

else

  Response.Write("<h3>" & recaffected & " record added</h3>")

end if

conn.close

%>

 

</body>

</html>

重要事项

在您使用 INSERT command 命令时,请注意以下事项:

·   如果表含有一个主键,请确保向主键字段添加的值是唯一且非空的(否则,provider 就不会追加此记录,亦或发生错误)

·   如果表含有一个自动编号的字段,请不要在 INSERT 命令中涉及此字段(这个字段的值是由 provider 负责的)

关于无数据字段

在 MS Access 数据库中,假如您将 AllowZeroLength 属性设置为 “Yes”,您可以在文本、超链接以及备忘字段输入零长度的字符串 ("")。

注释:并非所有的数据库都支持零长度的字符串,因而当添加带有空白字段的记录时可能会产生错误。因此,检查您使用的数据库所支持的数据类型是很重要的。

·         Previous Page

·         Next Page

ADO 更新记录

·         Previous Page

·         Next Page

我们可使用 SQL 的 UPDATE 来更新数据库表中的某条记录。

更新数据库表中的记录

我们希望更新 Northwind 数据中 Customers 表的某条记录。首先我们需要创建一个表格,来列出 Customers 中的所有记录。

<html>

<body>

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

set rs=Server.CreateObject("ADODB.Recordset")

rs.open "SELECT * FROM customers",conn

%>

 

<h2>List Database</h2>

<table border="1" width="100%">

<tr>

<%

for each x in rs.Fields

  response.write("<th>" & ucase(x.name) & "</th>")

next

%>

</tr>

<% do until rs.EOF %>

<tr>

<form method="post" action="demo_update.asp">

<%

for each x in rs.Fields

  if lcase(x.name)="customerid" then%>

    <td>

    <input type="submit" name="customerID" value="<%=x.value%>">

    </td>

  <%else%>

    <td><%Response.Write(x.value)%></td>

  <%end if

next

%>

</form>

<%rs.MoveNext%>

</tr>

<%

loop

conn.close

%>

</table>

 

</body>

</html>

如果用户点击 "customerID" 列中的按钮,会打开一个新文件 "demo_update.asp"。此文件包含了创建输入域的源代码,这些输入域基于数据库中记录的字段,同时也含有一个保存修改的“更新按钮”:

<html>

<body>

 

<h2>Update Record</h2>

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

 

cid=Request.Form("customerID")

 

if Request.form("companyname")="" then

  set rs=Server.CreateObject("ADODB.Recordset")

  rs.open "SELECT * FROM customers WHERE customerID='" & cid & "'",conn

  %>

  <form method="post" action="demo_update.asp">

  <table>

  <%for each x in rs.Fields%>

  <tr>

  <td><%=x.name%></td>

  <td><input name="<%=x.name%>" value="<%=x.value%>"></td>

  <%next%>

  </tr>

  </table>

  <br /><br />

  <input type="submit" value="Update record">

  </form>

<%

else

  sql="UPDATE customers SET "

  sql=sql & "companyname='" & Request.Form("companyname") & "',"

  sql=sql & "contactname='" & Request.Form("contactname") & "',"

  sql=sql & "address='" & Request.Form("address") & "',"

  sql=sql & "city='" & Request.Form("city") & "',"

  sql=sql & "postalcode='" & Request.Form("postalcode") & "',"

  sql=sql & "country='" & Request.Form("country") & "'"

  sql=sql & " WHERE customerID='" & cid & "'"

  on error resume next

  conn.Execute sql

  if err<>0 then

    response.write("No update permissions!")

  else

    response.write("Record " & cid & " was updated!")

  end if

end if

conn.close

%>

 

</body>

</html>

·         Previous Page

·         Next Page

ADO 删除记录

·         Previous Page

·         Next Page

我们可使用 SQL 的 DELETE 命令来删除数据库表中的某条记录。

删除表中的记录

我们希望删除 Northwind 数据库的 Customers 表中的一条记录。首先我们需要创建一个表格,来列出 Customers 中的所有记录。

<html>

<body>

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

set rs=Server.CreateObject("ADODB.Recordset")

rs.open "SELECT * FROM customers",conn

%>

 

<h2>List Database</h2>

<table border="1" width="100%">

<tr>

<%

for each x in rs.Fields

  response.write("<th>" & ucase(x.name) & "</th>")

next

%>

</tr>

<% do until rs.EOF %>

<tr>

<form method="post" action="demo_delete.asp">

<%

for each x in rs.Fields

  if x.name="customerID" then%>

    <td>

    <input type="submit" name="customerID" value="<%=x.value%>">

    </td>

  <%else%>

    <td><%Response.Write(x.value)%></td>

  <%end if

next

%>

</form>

<%rs.MoveNext%>

</tr>

<%

loop

conn.close

%>

</table>

 

</body>

</html>

假如用户点击 "customerID" 列中的按钮,会打开新文件 "demo_delete.asp"。此文件包含了创建输入域的源代码,这些输入域基于数据库中记录的字段,同时也含有一个删除当前记录的“删除按钮”:

<html>

<body>

 

<h2>Delete Record</h2>

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

 

cid=Request.Form("customerID"

 

if Request.form("companyname")="" then

  set rs=Server.CreateObject("ADODB.Recordset")

  rs.open "SELECT * FROM customers WHERE customerID='" & cid & "'",conn

  %>

  <form method="post" action="demo_delete.asp">

  <table>

  <%for each x in rs.Fields%>

  <tr>

  <td><%=x.name%></td>

  <td><input name="<%=x.name%>" value="<%=x.value%>"></td>

  <%next%>

  </tr>

  </table>

  <br /><br />

  <input type="submit" value="Delete record">

  </form>

<%

else

  sql="DELETE FROM customers"

  sql=sql & " WHERE customerID='" & cid & "'"

  on error resume next

  conn.Execute sql

  if err<>0 then

    response.write("No update permissions!")

  else

    response.write("Record " & cid & " was deleted!")

  end if

end if

conn.close

%>

 

</body>

</html>

·         Previous Page

·         Next Page

ADO 通过 GetString() 加速脚本

·         Previous Page

·         Next Page

请使用 GetString() 方法来加速您的 ASP 脚本(来代替多行的 Response.Write)。

实例

使用 GetString()

如何使用 GetString() 在 HTML 表格中显示记录集中的数据。

多行 Response.Write

下面的例子演示了在 HTML 表格中显示数据库查询的一种方法:

<html>

<body>

 

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

 

set rs = Server.CreateObject("ADODB.recordset")

rs.Open "SELECT Companyname, Contactname FROM Customers", conn

%>

 

<table border="1" width="100%">

<%do until rs.EOF%>

   <tr>

      <td><%Response.Write(rs.fields("Companyname"))%></td>

      <td><%Response.Write(rs.fields("Contactname"))%></td>

   </tr>

<%rs.MoveNext

loop%>

</table>

 

<%

rs.close

conn.close

set rs = Nothing

set conn = Nothing

%>

 

</body>

</html>

对于一个大型的查询来说,这样做会增加脚本的处理时间,这是由于服务器需要处理大量的 Response.Write 命令。

解决的办法是创建全部字符串,从 <table> 到 </table>,然后将其输出 - 只使用一次 Response.Write。

GetString() 方法

GetString() 方法使我们有能力仅使用一次 Response.Write,就可以显示所有的字符串。同时它甚至不需要 do..loop 代码以及条件测试来检查记录集是否处于 EOF。

语法

str = rs.GetString(format,rows,coldel,rowdel,nullexpr)

如需使用来自记录集的数据创建一个 HTML 表格,我们仅仅需要使用以上参数中的三个(所有的参数都是可选的):

·   coldel - 用作列分隔符的 HTML

·   rowdel - 用作行分隔符的 HTML

·   nullexpr - 当列为空时所使用的 HTML

注释:GetString() 方法是 ADO 2.0 的特性。您可从下面的地址下载 ADO 2.0:http://www.microsoft.com/data/download.htm

在下面的例子中,我们将使用 GetString() 方法,把记录集存为一个字符串:

<html>

<body>

 

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

 

set rs = Server.CreateObject("ADODB.recordset")

rs.Open "SELECT Companyname, Contactname FROM Customers", conn

 

str=rs.GetString(,,"</td><td>","</td></tr><tr><td>","&nbsp;")

%>

 

<table border="1" width="100%">

  <tr>

    <td><%Response.Write(str)%></td>

  </tr>

</table>

 

<%

rs.close

conn.close

set rs = Nothing

set conn = Nothing

%>

</body>

</html>

上面的变量 str 包含着由 SELECT 语句返回的所有列和行的一个字符串。在每列之间会出现 </td><td>,在每行之间会出现 </td></tr><tr><td>。这样,仅使用一次 Response.Write,我们就得到了需要的 HTML。

·         Previous Page

·         Next Page

ADO Command 对象

·         Previous Page

·         Next Page

Command 对象

ADO Command 对象用于执行面向数据库的一次简单查询。此查询可执行诸如创建、添加、取回、删除或更新记录等动作。

如果该查询用于取回数据,此数据将以一个 RecordSet 对象返回。这意味着被取回的数据能够被 RecordSet 对象的属性、集合、方法或事件进行操作。

Command 对象的主要特性是有能力使用存储查询和带有参数的存储过程。

ProgID

set objCommand=Server.CreateObject("ADODB.command")

属性

属性

描述

ActiveConnection

设置或返回包含了定义连接或 Connection 对象的字符串。

CommandText

设置或返回包含提供者(provider)命令(如 SOL 语句、表格名称或存储的过程调用)的字符串值。默认值为 ""(零长度字符串)。

CommandTimeout

设置或返回长整型值,该值指示等待命令执行的时间(单位为秒)。默认值为 30。

CommandType

设置或返回一个 Command 对象的类型

Name

设置或返回一个 Command 对象的名称

Prepared

指示执行前是否保存命令的编译版本(已经准备好的版本)。

State

返回一个值,此值可描述该 Command 对象处于打开、关闭、连接、执行还是取回数据的状态。

方法

方法

描述

Cancel

取消一个方法的一次执行。

CreateParameter

创建一个新的 Parameter 对象

Execute

执行 CommandText 属性中的查询、SQL 语句或存储过程。

集合

集合

描述

Parameters

包含一个 Command 对象的所有 Parameter 对象。

Properties

包含一个 Command 对象的所有 Property 对象。

·         Previous Page

·         Next Page

ADO Connection 对象

·         Previous Page

·         Next Page

Connection 对象

ADO Connection 对象用于创建一个到达某个数据源的开放连接。通过此连接,您可以对一个数据库进行访问和操作。

如果需要多次访问某个数据库,您应当使用 Connection 对象来建立一个连接。您也可以经由一个 Command 或 Recordset 对象传递一个连接字符串来创建某个连接。不过,此类连接仅仅适合一次具体的简单的查询。

ProgID

set objConnection=Server.CreateObject("ADODB.connection")

属性

属性

描述

Attributes

设置或返回 Connection 对象的属性。

CommandTimeout

指示在终止尝试和产生错误之前执行命令期间需等待的时间。

ConnectionString

设置或返回用于建立连接数据源的细节信息。

ConnectionTimeout

指示在终止尝试和产生错误前建立连接期间所等待的时间。

CursorLocation

设置或返回游标服务的位置。

DefaultDatabase

指示 Connection 对象的默认数据库。

IsolationLevel

指示 Connection 对象的隔离级别。

Mode

设置或返回 provider 的访问权限。

Provider

设置或返回 Connection 对象提供者的名称。

State

返回一个描述连接是打开还是关闭的值。

Version

返回 ADO 的版本号。

方法

方法

描述

BeginTrans

开始一个新事务。

Cancel

取消一次执行。

Close

关闭一个连接。

CommitTrans

保存任何更改并结束当前事务。

Execute

执行查询、SQL 语句、存储过程或 provider 具体文本。

Open

打开一个连接。

OpenSchema

从 provider 返回有关数据源的 schema 信息。

RollbackTrans

取消当前事务中所作的任何更改并结束事务。

事件

注释:您无法使用 VBScript or JScript 来处理事件(仅能使用 Visual Basic、Visual C++ 以及 Visual J++ 语言处理事件)。

事件

描述

BeginTransComplete

在 BeginTrans 操作之后被触发。

CommitTransComplete

在 CommitTrans 操作之后被触发。

ConnectComplete

在一个连接开始后被触发。

Disconnect

在一个连接结束之后被触发。

ExecuteComplete

在一条命令执行完毕后被触发。

InfoMessage

假如在一个 ConnectionEvent 操作过程中警告发生,则触发该事件。

RollbackTransComplete

在 RollbackTrans 操作之后被触发。

WillConnect

在一个连接开始之前被触发。

WillExecute

在一条命令被执行之前被触发。

集合

集合

描述

Errors

包含 Connection 对象的所有 Error 对象。

Properties

包含 Connection 对象的所有 Property 对象。

·         Previous Page

·         Next Page

ADO Error 对象

·         Previous Page

·         Next Page

Error 对象

ADO Error 对象包含与单个操作(涉及提供者)有关的数据访问错误的详细信息。

ADO 会因每次错误产生一个 Error 对象。每个 Error 对象包含具体错误的详细信息,且 Error 对象被存储在 Errors 集合中。要访问这些错误,就必须引用某个具体的连接。

循环遍历 Errors 集合:

<%

for each objErr in objConn.Errors

  response.write("<p>")

  response.write("Description: ")

  response.write(objErr.Description & "<br />")

  response.write("Help context: ")

  response.write(objErr.HelpContext & "<br />")

  response.write("Help file: ")

  response.write(objErr.HelpFile & "<br />")

  response.write("Native error: ")

  response.write(objErr.NativeError & "<br />")

  response.write("Error number: ")

  response.write(objErr.Number & "<br />")

  response.write("Error source: ")

  response.write(objErr.Source & "<br />")

  response.write("SQL state: ")

  response.write(objErr.SQLState & "<br />")

  response.write("</p>")

next

%>

语法

objErr.property

属性

属性

描述

Description

返回一个错误描述。

HelpContext

返回 Microsoft Windows help system 中某个主题的内容 ID。

HelpFile

返回 Microsoft Windows help system 中帮助文件的完整路径。

NativeError

返回来自 provider 或数据源的错误代码。

Number

返回可标识错误的一个唯一的数字。

Source

返回产生错误的对象或应用程序的名称。

SQLState

返回一个 5 字符的 SQL 错误码。

·         Previous Page

·         Next Page

ADO Field 对象

·         Previous Page

·         Next Page

Field 对象

ADO Field 对象包含有关 Recordset 对象中某一列的信息。Recordset 中的每一列对应一个 Field 对象。

ProgID

set objField=Server.CreateObject("ADODB.field")

属性

属性

描述

ActualSize

返回一个字段值的实际长度。

Attributes

设置或返回 Field 对象的属性。

DefinedSize

返回Field 对象被定义的大小

Name

设置或返回 Field 对象的名称。

NumericScale

设置或返回 Field 对象中的值所允许的小数位数。

OriginalValue

返回某个字段的原始值。

Precision

设置或返回当表示 Field 对象中的数值时所允许的数字的最大数。

Status

返回 Field 对象的状态。

Type

设置或返回 Field 对象的类型。

UnderlyingValue

返回一个字段的当前值。

Value

设置或返回 Field 对象的值。

方法

方法

描述

AppendChunk

把大型的二进制或文本数据追加到 Field 对象

GetChunk

返回大型二进制或文本 Field 对象的全部或部分内容。

集合

集合

描述

Properties

包含一个 Field 对象的所有 Property 对象。

·         Previous Page

·         Next Page

ADO Parameter 对象

·         Previous Page

·         Next Page

Parameter 对象

ADO Parameter 对象可提供有关被用于存储过程或查询中的一个单个参数的信息。

Parameter 对象在其被创建时被添加到 Parameters 集合。Parameters 集合与一个具体的 Command 对象相关联,Command 对象使用此集合在存储过程和查询内外传递参数。

参数被用来创建参数化的命令。这些命令(在它们已被定义和存储之后)使用参数在命令执行前来改变命令的某些细节。例如,SQL SELECT 语句可使用参数定义 WHERE 子句的匹配条件,而使用另一个参数来定义 SORT BY 子句的列的名称。

有四种类型的参数:input 参数、output 参数、input/output 参数 以及 return 参数。

语法

objectname.property

objectname.method

属性

属性

描述

Attributes

设置或返回一个 Parameter 对象的属性。

Direction

设置或返回某个参数如何传递到存储过程或从存储过程传递回来。

Name

设置或返回一个 Parameter 对象的名称。

NumericScale

设置或返回一个 Parameter 对象的数值的小数点右侧的数字数目。

Precision

设置或返回当表示一个参数中数值时所允许数字的最大数目。

Size

设置或返回 Parameter 对象中的值的最大大小(按字节或字符)。

Type

设置或返回一个 Parameter 对象的类型。

Value

设置或返回一个 Parameter 对象的值。

方法

方法

描述

AppendChunk

把长二进制或字符数据追加到一个 Parameter 对象。

Delete

从 Parameters 集合中删除一个对象。

·         Previous Page

·         Next Page

ADO Property 对象

·         Previous Page

·         Next Page

Property 对象

ADO 对象有两种类型的属性:内置属性和动态属性。

内置属性是在 ADO 中实现并立即可用于任何新对象的属性,此时使用 MyObject.Property 语法。它们不会作为 Property 对象出现在对象的 Properties 集合中,因此,虽然可以更改它们的值,但无法更改它们的特性。

ADO Property 对象表示 ADO 对象的动态特性,这种动态特性是被 provider 定义的。

每个与 ADO 对话的 provider 拥有不同的方式与 ADO 进行交互。所以,ADO 需要通过某种方式来存储有关 provider 的信息。解决方法是 provider 为 ADO 提供具体的信息(动态属性)。ADO 把每个 provider 属性存储在一个 Property 对象中,而 Property 对象相应地也被存储在 Properties 集合中。此集合会被分配到 Command 对象、Connection 对象、Field 对象 或者 Recordset 对象。

例如,指定给提供者的属性可能会指示 Recordset 对象是否支持事务或更新。这些附加的属性将作为 Property 对象出现在该 Recordset 对象的 Properties 集合中。

ProgID

set objProperty=Server.CreateObject("ADODB.property")

属性

属性

描述

Attributes

返回一个 Property 对象的属性

Name

设置或返回一个 Property 对象的名称

Type

返回 Property 的类型

Value

设置或返回 一个 Property 对象的值

·         Previous Page

·         Next Page

ADO Record 对象

·         Previous Page

·         Next Page

Record 对象 (ADO version 2.5)

ADO Record 对象用于容纳记录集中的一行、或文件系统的一个文件或一个目录。

ADO 2.5 之前的版本仅能够访问结构化的数据库。在一个结构化的数据库中,每个表在每一行均有确切相同的列数,并且每一列都由相同的数据类型组成。

Record 对象允许访问行与行之间的列数且/或数据类型不同的数据集。

语法

objectname.property

objectname.method

属性

属性

描述

ActiveConnection

设置或返回 Record 对象当前所属的 Connection 对象。

Mode

设置或返回在Record 对象中修改数据的有效权限。

ParentURL

返回父 Record 的绝对URL。

RecordType

返回 Record 对象的类型。

Source

设置或返回 Record 对象的 Open 方法的 src 参数。

State

返回 Record 对象的状态。

方法

方法

描述

Cancel

取消一次 CopyRecord、DeleteRecord、MoveRecord 或 Open 调用的执行。

Close

关闭一个 Record 对象。

CopyRecord

把文件或目录拷贝到另外一个位置。

DeleteRecord

删除一个文件或目录。

GetChildren

返回一个 Recordset 对象,其中的每一行表示目录中的文件或子目录。

MoveRecord

把文件或目录移动到另外一个位置。

Open

打开一个已有的 Record 对象或创建一个新的文件或目录。

集合

集合

描述

Properties

特定提供者属性的一个集合。

Fields

包含 Record 对象中的所有 Field 对象。

Fields 集合的属性

属性

描述

Count

返回 fields 集合中的项目数。起始值为 0。

例子:

countfields = rec.Fields.Count

Item(named_item/number)

返回 fields 集合中的某个指定的项目。

例子:

itemfields = rec.Fields.Item(1)

或者

itemfields = rec.Fields.Item("Name")

·         Previous Page

·         Next Page

ADO Recordset 对象

·         Previous Page

·         Next Page

实例

GetRows

本例演示如何使用 GetRows 方法。

Recordset 对象

ADO Recordset 对象用于容纳一个来自数据库表的记录集。一个 Recordset 对象由记录和列(字段)组成。

在 ADO 中,此对象是最重要且最常用于对数据库的数据进行操作的对象。

ProgID

set objRecordset=Server.CreateObject("ADODB.recordset")

当您首次打开一个 Recordset 时,当前记录指针将指向第一个记录,同时 BOF 和 EOF 属性为 False。如果没有记录,BOF 和 EOF 属性为 True。

Recordset 对象能够支持两种更新类型:

立即更新 - 一旦调用 Update 方法,所有更改被立即写入数据库。批更新 - provider 将缓存多个更改,然后使用 UpdateBatch 方法把这些更改传送到数据库。

在 ADO,定义了 4 中不同的游标(指针)类型:

·   动态游标 - 允许您查看其他用户所作的添加、更改和删除

·   键集游标 - 类似动态游标,不同的是您无法查看有其他用户所做的添加,并且它会防止您访问其他用户已删除的记录。其他用户所做的数据更改仍然是可见的。

·   静态游标 - 提供记录集的静态副本,可用来查找数据或生成报告。此外,由其他用户所做的添加、更改和删除将是不可见的。当您打开一个客户端 Recordset 对象时,这是唯一被允许的游标类型。

·   仅向前游标 - 只允许在 Recordset 中向前滚动。此外,由其他用户所做的添加、更改和删除将是不可见的。

可通过 CursorType 属性或 Open 方法中的 CursorType 参数来设置游标的类型。

注释:并非所有的提供者(providers)支持 Recordset 对象的所有方法和属性。

属性

属性

描述

AbsolutePage

设置或返回一个可指定 Recordset 对象中页码的值。

AbsolutePosition

设置或返回一个值,此值可指定 Recordset 对象中当前记录的顺序位置(序号位置)。

ActiveCommand

返回与 Recordset 对象相关联的 Command 对象。

ActiveConnection

如果连接被关闭,设置或返回连接的定义,如果连接打开,设置或返回当前的 Connection 对象。

BOF

如果当前的记录位置在第一条记录之前,则返回 true,否则返回 fasle。

Bookmark

设置或返回一个书签。此书签保存当前记录的位置。

CacheSize

设置或返回能够被缓存的记录的数目。

CursorLocation

设置或返回游标服务的位置。

CursorType

设置或返回一个 Recordset 对象的游标类型。

DataMember

设置或返回要从 DataSource 属性所引用的对象中检索的数据成员的名称。

DataSource

指定一个包含要被表示为 Recordset 对象的数据的对象。

EditMode

返回当前记录的编辑状态。

EOF

如果当前记录的位置在最后的记录之后,则返回 true,否则返回 fasle。

Filter

返回一个针对 Recordset 对象中数据的过滤器。

Index

设置或返回 Recordset 对象的当前索引的名称。

LockType

设置或返回当编辑 Recordset 中的一条记录时,可指定锁定类型的值。

MarshalOptions

设置或返回一个值,此值指定哪些记录被返回服务器。

MaxRecords

设置或返回从一个查询返回 Recordset 对象的的最大记录数目。

PageCount

返回一个 Recordset 对象中的数据页数。

PageSize

设置或返回 Recordset 对象的一个单一页面上所允许的最大记录数。

RecordCount

返回一个 Recordset 对象中的记录数目。

Sort

设置或返回一个或多个作为 Recordset 排序基准的字段名。

Source

设置一个字符串值,或一个 Command 对象引用,或返回一个字符串值,此值可指示 Recordset 对象的数据源。

State

返回一个值,此值可描述是否 Recordset 对象是打开、关闭、正在连接、正在执行或正在取回数据。

Status

返回有关批更新或其他大量操作的当前记录的状态。

StayInSync

设置或返回当父记录位置改变时对子记录的引用是否改变。

方法

方法

描述

AddNew

创建一条新记录。

Cancel

撤销一次执行。

CancelBatch

撤销一次批更新。

CancelUpdate

撤销对 Recordset 对象的一条记录所做的更改。

Clone

创建一个已有 Recordset 的副本。

Close

关闭一个 Recordset。

CompareBookmarks

比较两个书签。

Delete

删除一条记录或一组记录。

Find

搜索一个 Recordset 中满足指定某个条件的一条记录。

GetRows

把多条记录从一个 Recordset 对象中拷贝到一个二维数组中。

GetString

将 Recordset 作为字符串返回。

Move

在 Recordset 对象中移动记录指针。

MoveFirst

把记录指针移动到第一条记录。

MoveLast

把记录指针移动到最后一条记录。

MoveNext

把记录指针移动到下一条记录。

MovePrevious

把记录指针移动到上一条记录。

NextRecordset

通过执行一系列命令清除当前 Recordset 对象并返回下一个 Recordset。

Open

打开一个数据库元素,此元素可提供对表的记录、查询的结果或保存的 Recordset 的访问。

Requery

通过重新执行对象所基于的查询来更新 Recordset 对象中的数据。

Resync

从原始数据库刷新当前 Recordset 中的数据。

Save

把 Recordset 对象保存到 file 或 Stream 对象中。

Seek

搜索 Recordset 的索引以快速定位与指定的值相匹配的行,并使其成为当前行。

Supports

返回一个布尔值,此值可定义 Recordset 对象是否支持特定类型的功能。

Update

保存所有对 Recordset 对象中的一条单一记录所做的更改。

UpdateBatch

把所有 Recordset 中的更改存入数据库。请在批更新模式中使用。

事件

Note: You cannot handle events using VBScript or JScript (only Visual Basic, Visual C++, and Visual J++ languages can handle events).

事件

描述

EndOfRecordset

当试图移动到超过 Recordset 结尾的行时被触发。

FetchComplete

当异步操作中的所有记录均被读取后被触发。

FetchProgress

在异步操作期间被定期地触发,报告已读取多少记录。

FieldChangeComplete

Field 对象的值更改被触发。

MoveComplete

Recordset 中的当前位置更改后被触发。

RecordChangeComplete

一条记录更改之后被触发。

RecordsetChangeComplete

在 Recordset 更改之后被触发。

WillChangeField

在 Field 对象的值更改之前被触发

WillChangeRecord

在一条记录更改之前被触发。

WillChangeRecordset

在 Recordset 更改之前被触发。

WillMove

在 Recordset 中的当前位置更改之前被触发。

集合

集合

描述

Fields

指示在此 Recordset 对象中 Field 对象的数目。

Properties

包含所有 Recordset 对象中的 Property 对象。

Fields 集合的属性

属性

描述

Count

返回 fields 集合中项目的数目。以 0 起始。

例子:

countfields = rs.Fields.Count

Item(named_item/number)

返回 fields 集合中的某个指定的项目。

例子:

itemfields = rs.Fields.Item(1)

或者      

itemfields = rs.Fields.Item("Name")

Properties 集合的属性

属性

描述

Count

返回 properties 集合中项目的数目。以 0 起始。

例子:

countprop = rs.Properties.Count

Item(named_item/number)

返回 properties 集合中某个指定的项目。

例子:

itemprop = rs.Properties.Item(1)

或者

itemprop = rs.Properties.Item("Name")

·         Previous Page

·         Next Page

ADO Stream 对象

·         Previous Page

·         Next Page

Stream 对象 (ADO version 2.5)

ADO Stream 对象用于读写以及处理二进制数据或文本流。

Stream 对象可通过三种方法获得:

·   通过指向包含二进制或文本数据的对象(通常是文件)的 URL。此对象可以是简单的文档、表示结构化文档的 Record 对象或文件夹。

·   通过将 Stream 对象实例化。这些 Stream 对象可用来存储用于应用程序的数据。跟与 URL 相关联的 Stream 或 Record 的默认 Stream 不同,实例化的 Stream 在默认情况下与基本源没有关联。

·   通过打开与 Record 对象相关联的默认 Stream 对象。打开 Record 时便可获取与 Record 对象相关联的默认流。只需打开该流便可删除一个往返过程。

语法

objectname.property

objectname.method

属性

属性

描述

CharSet

指定用于存储 Stream 的字符集。

EOS

返回当前位置是否位于流的结尾。

LineSeparator

设置或返回用在文本 Stream 对象中的分行符。

Mode

设置或返回供修改数据的可用权限。

Position

设置或返回从 Stream 对象开始处的当前位置(按字节计算)。

Size

返回一个打开的 Stream 对象的大小。

State

返回一个描述 Stream 是打开还是关闭的值。

Type

设置或返回 Stream 对象中的数据的类型。

方法

方法

描述

Cancel

取消对 Stream 对象的 Open 调用的执行。

Close

关闭一个 Stream 对象。

CopyTo

把指定数目的字符/比特从一个 Stream 对象拷贝到另外一个 Stream 对象。

Flush

把 Stream 缓冲区中的内容发送到相关联的下层对象。

LoadFromFile

把文件的内容载入 Stream 对象。

Open

打开一个 Stream 对象。

Read

从一个二进制 Stream 对象读取全部流或指定的字节数。

ReadText

从一个文本 Stream 对象中读取全部流、一行或指定的字节数。

SaveToFile

把一个 Stream 对象的二进制内容保存到某个文件。

SetEOS

设置当前位置为流的结尾 (EOS)

SkipLine

在读取一个文本流时跳过一行。

Write

把二进制数据写到一个二进制 Stream 对象。

WriteText

把字符数据写到一个文本 Stream 对象。

·         Previous Page

·         Next Page

ADO 数据类型

·         Previous Page

·         Next Page

下面的表格列出了 Access、SQL Server 与 Oracle 之间的数据类型映射:

DataType Enum

Value

Access

SQLServer

Oracle

adBigInt

20

 

BigInt (SQL Server 2000 +)

 

adBinary

128

 

Binary
TimeStamp

Raw *

adBoolean

11

YesNo

Bit

 

adChar

129

 

Char

Char

adCurrency

6

Currency

Money
SmallMoney

 

adDate

7

Date

DateTime

 

adDBTimeStamp

135

DateTime (Access 97 (ODBC))

DateTime
SmallDateTime

Date

adDecimal

14

 

 

Decimal *

adDouble

5

Double

Float

Float

adGUID

72

ReplicationID (Access 97 (OLEDB)), (Access 2000 (OLEDB))

UniqueIdentifier (SQL Server 7.0 +)

 

adIDispatch

9

 

 

 

adInteger

3

AutoNumber
Integer
Long

Identity (SQL Server 6.5)
Int
 

Int *

adLongVarBinary

205

OLEObject

Image

Long Raw *
Blob (Oracle 8.1.x)

adLongVarChar

201

Memo (Access 97)
Hyperlink (Access 97)

Text

Long *
Clob (Oracle 8.1.x)

adLongVarWChar

203

Memo (Access 2000 (OLEDB))
Hyperlink (Access 2000 (OLEDB))

NText (SQL Server 7.0 +)

NClob (Oracle 8.1.x)

adNumeric

131

Decimal (Access 2000 (OLEDB))

Decimal
Numeric

Decimal
Integer
Number
SmallInt

adSingle

4

Single

Real

 

adSmallInt

2

Integer

SmallInt

 

adUnsignedTinyInt

17

Byte

TinyInt

 

adVarBinary

204

ReplicationID (Access 97)

VarBinary

 

adVarChar

200

Text (Access 97)

VarChar

VarChar

adVariant

12

 

Sql_Variant (SQL Server 2000 +)

VarChar2

adVarWChar

202

Text (Access 2000 (OLEDB))

NVarChar (SQL Server 7.0 +)

NVarChar2

adWChar

130

 

NChar (SQL Server 7.0 +)

 

* 在 Oracle 8.0.x 中 - decimal 和 int 等于 number 和 number(10)。

·         Previous Page

·         Next Page

·         ADO Connection 对象

ADO Attributes 属性

返回 ADO Connection 对象参考手册

定义和用法

Attributes 属性可设置或返回 Long 值,该值可指示对象的一项或多项特性。

注释:设置多个属性时,可以将适当的常量相加。如果将属性值设置为包括不兼容常量的和,将会发生错误。

对象

Attributes 属性的描述

Connection

Attributes 属性对 Connection 对象拥有读写权限。并且其值可以是一个或多个 XactAttributeEnum 值的和。默认值为零 (0)。

Parameter

Attributes 属性对Parameter 对象拥有读写权限。并且其值可以是任意一个或多个 ParameterAttributesEnum 值的和。默认值为 adParamSigned。

Field

当 Attributes 属性被用于创建 Recordset 时,它拥有读写权限,但是当您打开一个已有的 Recordset 时,它是只读的。Attributes 属性可以是一个或多个 FieldAttributeEnum 值的和。

Property

对于 Property 对象,Attributes 属性是只读的。并且其值可以是任意一个或多个 PropertyAttributesEnum 值的和。

语法

object.Attributes

实例

针对 Connection 对象:

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

 

response.write(conn.Attributes)

 

conn.close

%>

针对 Field 对象:

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

 

set rs = Server.CreateObject("ADODB.Recordset")

rs.open "Select * from orders", conn

 

set f=Server.CreateObject("ADODB.Field")

 

'Display the field attributes of the Orders Table

for each f in rs.Fields

  response.write("Attr:" & f.Attributes & "<br />")

  response.write("Name:" & f.Name & "<br />")

  response.write("Value:" & f.Value & "<br />")

Next

 

rs.Close

conn.close

set rs=nothing

set conn=nothing

%>

针对 Property 对象:

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

 

set rs = Server.CreateObject("ADODB.Recordset")

rs.open "Select * from orders", conn

 

set prop=Server.CreateObject("ADODB.Property")

 

'Display the property attributes of the Orders Table

for each prop in rs.Properties

  response.write("Attr:" & prop.Attributes & "<br />")

  response.write("Name:" & prop.Name & "<br />")

  response.write("Value:" & prop.Value & "<br />")

next

 

rs.close

conn.close

set rs=nothing

set conn=nothing

%>

XactAttributeEnum 值

常量

描述

adXactAbortRetaining

262144

当调用 RollbackTrans,自动启动一个新事务。

adXactCommitRetaining

131072

当调用 CommitTrans,自动启动新事务。

ParameterAttributesEnum Values

常量

描述

adParamSigned

16

该参数接受带符号的值。

adParamNullable

64

该参数接受 Null 值。

adParamLong

128

该参数接受长二进制数据。

FieldAttributeEnum Values

常量

描述

adFldCacheDeferred

0x1000

指示提供者缓存字段值,并且指示对缓存的进行读取。

adFldFixed

0x10

指示该字段包含定长数据。

adFldIsChapter

0x2000

指示该字段包含一个子集值,指定与此父字段有关的特定子记录集。通常子集字段与数据构形或过滤器一起使用。

adFldIsCollection

0x40000

该字段指定由记录表示的资源是其他资源的集合(如文件夹)而不仅是简单资源(如文本文件)。

adFldIsDefaultStream

0x20000

该字段包含由记录表示的资源的默认流。例如,默认流可以是 Web 站点根文件夹的 HTML 内容,在指定根 URL 时自动提供。

adFldIsNullable

0x20

该字段接受 Null 值。

adFldIsRowURL

0x10000

该字段包含 URL,它命名了记录表示的数据存储中的资源。

adFldKeyColumn

0x8000

该字段是基本行集合的主键。还可指示该字段是复合主键的一部分。

adFldLong

0x80

该字段是长二进制字段。还指示能够使用 AppendChunk 和 GetChunk 方法。

adFldMayBeNull

0x40

可从该字段读取 Null 值。

adFldMayDefer

0x2

该字段被延期,即该字段值不是和整个记录一起从数据源检索,而是在显式访问它们时检索。

adFldNegativeScale

0x4000

该字段表示来自支持负范围值的列的数字值。该范围由 NumericScale 属性指定。

adFldRowID

0x100

该字段包含持久行标识符,该标识符无法被写入,并且除了标识行以外没有任何意义,例如记录编号、唯一标识符等。

adFldRowVersion

0x200

该字段包含用于跟踪更新的某种时间或日期戳。

adFldUnknownUpdatable

0x8

提供者无法确定用户是否可以写入字段。

adFldUnspecified

·         -1

·         0xFFFFFFFF

提供者没有指定字段属性。

adFldUpdatable

0x4

用户可以写入字段。

PropertyAttributesEnum Values

常量

描述

adPropNotSupported

0

提供者不支持该属性。

adPropRequired

1

在初始化数据源之前用户必须指定该属性的值。

adPropOptional

2

在初始化数据源之前用户不必指定该属性的值。

adPropRead

512

户可以读取该属性。

adPropWrite

1024

用户可以设置该属性。

返回 ADO Connection 对象参考手册

ADO CommandTimeout 属性

返回 ADO Connection 对象参考手册

定义和用法

CommandTimeout 属性可设置或返回执行命令期间在终止尝试和产生错误之前需等待的时间。默认值为 30。

语法

object.CommandTimeout

实例

针对 Command 对象:

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

 

set comm=Server.CreateObject("ADODB.Command")

comm.CommandTimeout=10

response.write(comm.CommandTimeout)

 

conn.close

%>

针对 Connection 对象:

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

 

conn.CommandTimeout=10

response.write(conn.CommandTimeout)

 

conn.close

%>

返回 ADO Connection 对象参考手册

定义和用法

ConnectionString 属性可设置或返回用于建立到数据源的连接的信息。

注释:您不能同时使用 Provider 和 File Name 参数。

语法

objconn.ConnectionString="para1=value;para2=value;etc;"

ConnectionString 属性有 5 个参数:

参数

描述

Provider

用于连接的提供者的名称。

File Name

提供者特有的文件(例如,持久保留的数据源对象)的名称,这些文件中包含预置的连接信息。

Remote Provider

当打开客户端连接时使用的提供者的名称。(仅限于远程数据服务。)

Remote Server

当打开客户端连接时使用的服务器的路径名称。(仅限于远程数据服务。)

url

标识资源(比如文件或目录)的绝对 URL。

实例

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0"

conn.open server.mappath("database.mdb")

 

conn.close

%>

返回 ADO Connection 对象参考手册

ADO ConnectionTimeout 属性

返回 ADO Connection 对象参考手册

定义和用法

ConnectionTimeout 属性可设置或返回在终止尝试和产生错误之前打开连接需要等待的秒数。默认是 15 秒。

语法

objconn.ConnectionTimeout

实例

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0"

conn.ConnectionTimeout=30

conn.open server.mappath("database.mdb")

 

conn.close

%>

返回 ADO Connection 对象参考手册

ADO CursorLocation 属性

返回 ADO Connection 对象参考手册

定义和用法

CursorLocation 属性可设置或返回一个 long 值,该值指示游标服务的位置。可被设置为 CursorLocationEnum 值之一。默认值是 AdUseServer。

游标用于:

·   控制记录定位

·   控制其他用户对数据库所作的更改的可视性

·   控制数据可更新性

注释:Recordset 对象将从与它们相关联的连接上自动继承此设置。

注释:此属性在 Connection 或已关闭的 Recordset 上为读/写,在打开的 Recordset 上为只读。

语法

objConnection.CursorLocation

objRecordset.CursorLocation

实例

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open(Server.Mappath("northwind.mdb"))

set rs=Server.CreateObject("ADODB.recordset")

sql="SELECT * FROM Customers"

 

rs.CursorLocation=adUseClient

rs.CursorType=adOpenStatic

rs.LockType=adLockBatchOptimistic

 

rs.Open sql,conn

 

rs.Close

conn.Close

%>

返回 ADO Connection 对象参考手册

ADO DefaultDatabase 属性

返回 ADO Connection 对象参考手册

定义和用法

DefaultDatabase 属性可设置或返回一个字符串值,该值是特定 Connection 对象上的默认数据库的名称。

语法

objconn.DefaultDatabase

实例

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.DefaultDatabase="northwind"

 

set rs=Server.CreateObject("ADODB.Recordset")

rs.Open "customers",conn

 

....

 

rs.Close

conn.close

%>

返回 ADO Connection 对象参考手册

窗体顶端

Search:

窗体底端

ADO 参考手册

ADO 实例

赞助商链接

-

 

ADO IsolationLevel 属性

返回 ADO Connection 对象参考手册

定义和用法

IsolationLevel 属性可设置或返回 Connection 对象的隔离级别。该值是一个 IsolationLevelEnum 值。默认是 adXactChaos。

注释:IsolationLevel 设置直到下次调用 BeginTrans 方法时才生效。

语法

objconn.IsolationLevel

实例

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.IsolationLevel=adXactIsolated

conn.Open(Server.Mappath("northwind.mdb"))

 

response.write(conn.IsolationLevel)

 

conn.Close

%> 

IsolationLevelEnum

常量

描述

adXactUnspecified

-1

无法使用指定的隔离级别,因为提供者正在使用不同的隔离级别,而且该级别无法被确定。

adXactChaos

16

无法覆盖更高级别的事务。

adXactBrowse

256

可以从一个事务中查看其他事务中未提交的更改。

adXactReadUncommitted

256

与 adXactBrowse 相同。

adXactCursorStability

4096

只能从一个事务中查看其他事务中提交的更改。

adXactReadCommitted

4096

与 adXactCursorStability 相同。

adXactRepeatableRead

65536

不能从一个事务中查看其他事务中所作的修改,但是重新查询可以检索新的 Recordset 对象。

adXactIsolated

1048576

该事务与其他事务隔离执行。

adXactSerializable

1048576

与 adXactIsolated 相同。

返回 ADO Connection 对象参考手册

ADO Mode 属性

返回 ADO Connection 对象参考手册

定义和用法

Mode 属性可设置或返回一个 ConnectModeEnum 值,该值指示在 Connection, Record 或 Stream 对象中修改数据的权限。在对象关闭时,此属性为读写,在对象打开时为只读。

·   Connection 对象 - 默认是 adModeUnknown

·   Record 对象 - 默认是 adModeRead

·   Stream 对象 - 默认是 adModeRead 或 adModeUnknown

注释:该属性只能在 Connection 对象关闭时设置。

语法

object.Mode

实例

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Mode=adModeReadWrite

conn.Open(Server.Mappath("northwind.mdb"))

 

response.write(conn.Mode)

 

conn.Close

%> 

ConnectModeEnum

常量

描述

adModeUnknown

0

默认值。权限尚未设置或不能确定权限。

adModeRead

1

只读权限。

adModeWrite

2

只写权限。

adModeReadWrite

3

读/写权限。

adModeShareDenyRead

4

禁止其他人以读权限打开连接。

adModeShareDenyWrite

8

禁止其他人以写权限打开连接。

adModeShareExclusive

12

禁止其他人打开连接。

adModeShareDenyNone

16

允许其他人以任何权限打开连接。不拒绝其他人的读或写访问。

adModeRecursive

0x400000

与 adModeShareDenyNone, adModeShareDenyWrite 或 adModeShareDenyRead 一起使用,对当前 Record 的所有子记录设置权限。

返回 ADO Connection 对象参考手册

ADO Provider 属性

返回 ADO Connection 对象参考手册

定义和用法

Provider 属性可设置或返回包含特定 Connection 对象的提供者名称的字符串值。默认是 MSDASQL (Microsoft OLE DB provider for ODBC)。请参阅 Provider 代码

在连接关闭时,此属性是可读写的。

提供者名称也可通过 Connection 对象的 ConnectionString 属性或者 Open 方法的 ConnectionString 参数来设置。

注释:请不要在多个地方为特定的 Connection 设置 provider。

语法

connobj.Provider

实例

<%

set conn=Server.CreateObject("ADODB.Connection")

conn.Provider="Microsoft.Jet.OLEDB.4.0"

conn.Open "c:/webdata/northwind.mdb"

 

response.write(conn.Provider)

 

conn.close

%>

Provider 代码

Provider 代码

Provider

ADSDSOObject

Active Directory Services

Microsoft.Jet.OLEDB.4.0

Microsoft Jet databases

MSDAIPP.DSO.1

Microsoft Internet Publishing

MSDAORA

Oracle databases

MSDAOSP

Simple text files

MSDASQL

Microsoft OLE DB provider for ODBC

MSDataShape

Microsoft Data Shape

MSPersist

Locally saved files

SQLOLEDB

Microsoft SQL Server

返回 ADO Connection 对象参考手册

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值