此頁沒有內(nèi)容條目
內(nèi)容

Open 和 Close 方法范例

該范例使用已經(jīng)打開的 RecordsetConnection 對象的 OpenClose 方法。

Public Sub OpenX()

   Dim cnn1 As ADODB.Connection

   Dim rstEmployees As ADODB.Recordset

   Dim strCnn As String

   Dim varDate As Variant

   ' 打開連接。

      strCnn = "Provider=sqloledb;" & _

      "Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "

   Set cnn1 = New ADODB.Connection

   cnn1.Open strCnn

   ' 打開雇員表。

   Set rstEmployees = New ADODB.Recordset

   rstEmployees.CursorType = adOpenKeyset

   rstEmployees.LockType = adLockOptimistic

   rstEmployees.Open "employee", cnn1, , , adCmdTable

   ' 將第一個雇員記錄的受雇日期賦值給變量,然后更改受雇日期。

   varDate = rstEmployees!hire_date

   Debug.Print "Original data"

   Debug.Print "  Name - Hire Date"

   Debug.Print "  " & rstEmployees!fName & " " & _

      rstEmployees!lName & " - " & rstEmployees!hire_date

   rstEmployees!hire_date = #1/1/1900#

   rstEmployees.Update

   Debug.Print "Changed data"

   Debug.Print "  Name - Hire Date"

   Debug.Print "  " & rstEmployees!fName & " " & _

      rstEmployees!lName & " - " & rstEmployees!hire_date

   ' 再查詢 Recordset 并重置受雇日期。

   rstEmployees.Requery

   rstEmployees!hire_date = varDate

   rstEmployees.Update

   Debug.Print "Data after reset"

   Debug.Print "  Name - Hire Date"

   Debug.Print "  " & rstEmployees!fName & " " & _

      rstEmployees!lName & " - " & rstEmployees!hire_date

   rstEmployees.Close

   cnn1.Close

End Sub

VBScript 版本

下面是使用 VBScript 編寫、并用于 Active Server Page (ASP) 的相同范例。如需查看該完整功能范例,請使用與 IIS 一同安裝并位于 C:\InetPub\ASPSamp\AdvWorks 的數(shù)據(jù)源 AdvWorks.mdb,來創(chuàng)建名為 AdvWorks 的系統(tǒng)“數(shù)據(jù)源名稱”(DSN)。這是 Microsoft Access 數(shù)據(jù)庫文件。請使用查找命令定位文件 Adovbs.inc,并將其放入計劃使用的目錄中。請將以下代碼剪切并粘貼到記事本或其他文本編輯器中,另存為“ADOOpen.asp”。這樣,便可在任何客戶端瀏覽器中查看結(jié)果。

<!-- #Include file="ADOVBS.INC" -->

<HTML><HEAD>

<TITLE>ADO Open Method</TITLE>

</HEAD><BODY>

<FONT FACE="MS SANS SERIF" SIZE=2>

<Center><H3>ADO Open Method</H3>

<TABLE WIDTH=600 BORDER=0>

<TD VALIGN=TOP ALIGN=LEFT COLSPAN=3><FONT SIZE=2>

<!--- 用于創(chuàng)建 2 個記錄集的 ADO 連接 -->

<%

Set OBJdbConnection = Server.CreateObject("ADODB.Connection")

OBJdbConnection.Open "AdvWorks"

SQLQuery = "SELECT * FROM Customers"

' 第一個記錄集 RSCustomerList

Set RSCustomerList = OBJdbConnection.Execute(SQLQuery)

' 第二個記錄集 RsProductist

Set RsProductList = Server.CreateObject("ADODB.Recordset")

RsProductList.CursorType = adOpenDynamic

RsProductList.LockType = adLockOptimistic

RsProductList.Open "Products", OBJdbConnection

%>

<TABLE COLSPAN=8 CELLPADDING=5 BORDER=0>

<!-- Customer 表的 BEGIN 列標(biāo)頭行 -->

<TR><TD ALIGN=CENTER BGCOLOR="#008080">

<FONT STYLE="ARIAL NARROW" COLOR="#ffffff" SIZE=1>Company Name</FONT></TD>

<TD ALIGN=CENTER BGCOLOR="#008080">

<FONT STYLE="ARIAL NARROW" COLOR="#ffffff" SIZE=1>Contact Name</FONT></TD>

<TD ALIGN=CENTER WIDTH=150 BGCOLOR="#008080">

<FONT STYLE="ARIAL NARROW" COLOR="#ffffff" SIZE=1>E-mail address</FONT></TD>

<TD ALIGN=CENTER BGCOLOR="#008080">

<FONT STYLE="ARIAL NARROW" COLOR="#ffffff" SIZE=1>City</FONT></TD>

<TD ALIGN=CENTER BGCOLOR="#008080">

<FONT STYLE="ARIAL NARROW" COLOR="#ffffff" SIZE=1>State/Province</FONT></TD></TR>

<!-- 顯示 Customer 表的 ADO 數(shù)據(jù) -->

<% Do While Not RScustomerList.EOF %>

  <TR><TD BGCOLOR="f7efde" ALIGN=CENTER>

  <FONT STYLE="ARIAL NARROW" SIZE=1>

  <%= RSCustomerList("CompanyName")%>

  </FONT></TD>

  <TD BGCOLOR="f7efde" ALIGN=CENTER>

  <FONT STYLE="ARIAL NARROW" SIZE=1>

  <%= RScustomerList("ContactLastName") & ", " %>

  <%= RScustomerList("ContactFirstName") %>

  </FONT></TD>

  <TD BGCOLOR="f7efde" ALIGN=CENTER>

  <FONT STYLE="ARIAL NARROW" SIZE=1>

  <%= RScustomerList("ContactLastName")%>

 </FONT></TD>

  <TD BGCOLOR="f7efde" ALIGN=CENTER>

  <FONT STYLE="ARIAL NARROW" SIZE=1>

  <%= RScustomerList("City")%>

  </FONT></TD>

  <TD BGCOLOR="f7efde" ALIGN=CENTER>

  <FONT STYLE="ARIAL NARROW" SIZE=1>

  <%= RScustomerList("StateOrProvince")%>

  </FONT></TD></TR>

<!-Next Row = Record Loop 并添加到 html 表 -->

<%

RScustomerList.MoveNext

Loop

RScustomerList.Close

OBJdbConnection.Close

%>

</TABLE>

<HR>

<TABLE COLSPAN=8 CELLPADDING=5 BORDER=0>

<!-- Product List 表的 BEGIN 列標(biāo)頭行 -->

<TR><TD ALIGN=CENTER BGCOLOR="#800000">

<FONT STYLE="ARIAL NARROW" COLOR="#ffffff" SIZE=1>Product Type</FONT></TD>

<TD ALIGN=CENTER BGCOLOR="#800000">

<FONT STYLE="ARIAL NARROW" COLOR="#ffffff" SIZE=1>Product Name</FONT></TD>

<TD ALIGN=CENTER WIDTH=350 BGCOLOR="#800000">

<FONT STYLE="ARIAL NARROW" COLOR="#ffffff" SIZE=1>Product Description</FONT></TD>

<TD ALIGN=CENTER BGCOLOR="#800000">

<FONT STYLE="ARIAL NARROW" COLOR="#ffffff" SIZE=1>Unit Price</FONT></TD></TR>

<!-- 顯示 ADO Data 的 Product List -->

<% Do While Not RsProductList.EOF %>

  <TR>  <TD BGCOLOR="f7efde" ALIGN=CENTER>

  <FONT STYLE="ARIAL NARROW" SIZE=1>

  <%= RsProductList("ProductType")%>

  </FONT></TD>

  <TD BGCOLOR="f7efde" ALIGN=CENTER>

  <FONT STYLE="ARIAL NARROW" SIZE=1>

  <%= RsProductList("ProductName")%>

  </FONT></TD>

  <TD BGCOLOR="f7efde" ALIGN=CENTER>

  <FONT STYLE="ARIAL NARROW" SIZE=1>

   <%= RsProductList("ProductDescription")%>

 </FONT></TD>

  <TD BGCOLOR="f7efde" ALIGN=CENTER>

  <FONT STYLE="ARIAL NARROW" SIZE=1>

  <%= RsProductList("UnitPrice")%>

  </FONT></TD>

<!--  Next Row = Record -->

<%

RsProductList.MoveNext

Loop

' 從 Memory Freeing 刪除對象。

Set RsProductList = Nothing

Set OBJdbConnection = Nothing

%>

</TABLE></FONT></Center></BODY></HTML>