Delete 方法範例 (VBScript)
這個範例會使用 Delete 方法,從 Recordset移除指定的記錄。
在 Active Server Page (ASP) 中使用下列範例。 若要檢視這個功能完整的範例,您必須在 C:\Program Files\Microsoft Platform SDK\Samples\DataAccess\Rds\RDSTest\advworks.mdb或編輯範例程式代碼中的路徑,以反映此檔案的實際位置。若要檢視此檔案的實際位置,您必須擁有數據源AdvWorks.mdb(隨 SDK 一起安裝)。 這是Microsoft Access 資料庫檔案。
使用 尋找 來尋找 Adovbs.inc 檔案,並將它放在您打算使用的目錄中。 將下列程式代碼剪下並貼到 [記事本] 或其他文字編輯器中,並將它儲存為 DeleteVBS.asp。 您可以在任何用戶端瀏覽器中檢視結果。
若要練習範例,請嘗試先使用 AddNew 範例來新增一些記錄。 然後,您可以嘗試刪除它們。 在任何用戶端瀏覽器中檢視結果。
<!-- BeginDeleteVBS -->
<%@ Language=VBScript %>
<% ' use this meta tag instead of ADOVBS.inc%>
<!-- METADATA TYPE="typelib" uuid="00000205-0000-0010-8000-00AA006D2EA4" -->
<HTML>
<HEAD>
<TITLE>ADO Delete Method</TITLE>
</HEAD>
<STYLE>
<!--
TH {
background-color: #008080;
font-family: 'Arial Narrow','Arial',sans-serif;
font-size: xx-small;
color: white;
}
TD {
text-align: center;
background-color: #f7efde;
font-family: 'Arial Narrow','Arial',sans-serif;
font-size: xx-small;
}
-->
</STYLE>
<BODY>
<H3>ADO Delete Method</H3>
<%
' to integrate this code replace the DataSource value in the connection string
' connection and recordset variables
Dim Cnxn, strCnxn
Dim rsCustomers, strSQLCustomers
' create and open connection
Set Cnxn = Server.CreateObject("ADODB.Connection")
strCnxn="Provider='sqloledb';Data Source=" & _
Request.ServerVariables("SERVER_NAME") & ";" & _
"Integrated Security='SSPI';Initial Catalog='Northwind';"
Cnxn.Open strCnxn
' create and open recordset
Set rsCustomers = Server.CreateObject("ADODB.Recordset")
strSQLCustomers = "Customers"
rsCustomers.Open strSQLCustomers, Cnxn, adOpenKeyset, adLockOptimistic, adCmdTable
' Move to designated record and delete it
If Not IsEmpty(Request.Form("WhichRecord")) Then
'Get value to move from Form Post method
Moves = Request.Form("WhichRecord")
rsCustomers.Move CInt(Moves)
If Not rsCustomers.EOF or rsCustomers.BOF Then
' handle any db errors
On Error Resume Next
rsCustomers.Delete 1
If Cnxn.Errors.Count <> 0 Then
Response.Write "Cannot delete since there are related records in other tables."
Response.End
End If
rsCustomers.MoveFirst
On Error GoTo 0
Else
Response.Write "Not a Valid Record Number"
rsCustomers.MoveFirst
End If
End If
%>
<!-- BEGIN column header row for Customer Table-->
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=0>
<TR>
<TH>Rec. #</TH>
<TH>Company Name</TH>
<TH>Contact Name</TH>
<TH>City</TH>
</TR>
<%
' Display ADO Data from Customer Table
' Loop through Recordset adding one row to HTML Table each pass
Dim iCount
iCount = 0
Do Until rsCustomers.EOF %>
<TR>
<TD> <%= CStr(iCount) %>
<TD> <%= rsCustomers("CompanyName")%> </TD>
<TD> <%= rsCustomers("ContactName")%> </TD>
<TD> <%= rsCustomers("City")%> </TD>
</TR>
<%
iCount = iCount + 1
rsCustomers.MoveNext
Loop
%>
</TABLE>
<!-- Do Client side Input Data Validation Move to named record and Delete it -->
<Center>
<H4>Clicking Button Will Remove Designated Record</H4>
<H5>There are <%=rsCustomers.RecordCount%> Records in this Set</H5>
<Form Method=Post Action="Deletevbs.asp" Name=Form>
<Input Type=Text Name="WhichRecord" Size=3>
<Input Type=Button Name=cmdDelete Value="Delete Record">
</Form>
</BODY>
<Script Language = "VBScript">
Sub cmdDelete_OnClick
If IsNumeric(Document.Form.WhichRecord.Value) Then
Document.Form.WhichRecord.Value = CInt(Document.Form.WhichRecord.Value)
Dim Response
Response = MsgBox("Are You Sure About Deleting This Record?", vbYesNo, "ADO-ASP Example")
If Response = vbYes Then
Document.Form.Submit
End If
Else
MsgBox "You Must Enter a Valid Record Number",,"ADO-ASP Example"
End If
End Sub
</Script>
<%
' clean up
If rsCustomers.State = adStateOpen then
rsCustomers.Close
End If
If Cnxn.State = adStateOpen then
Cnxn.Close
End If
%>
</HTML>
<!-- EndDeleteVBS -->