Пример метода Move (VBScript)
В этом примере используется метод Move для размещения указателя записи на основе введенных пользователем данных.
Используйте следующий пример на странице Active Server (ASP). Чтобы просмотреть этот полнофункциональный пример, необходимо либо иметь источник данных AdvWorks.mdb (установленный вместе с пакетом SDK), расположенный по адресу C:\Program Files\Microsoft Platform SDK\Samples\DataAccess\Rds\RDSTest\advworks.mdb, либо изменить путь в примере кода, чтобы отразить фактическое расположение этого файла. Это файл базы данных Microsoft Access.
С помощью функции Найти найдите файл Adovbs.inc и поместите его в каталог, который вы планируете использовать. Вырезайте и вставьте следующий код в Блокнот или другой текстовый редактор и сохраните его как MoveVBS.asp. Результат можно просмотреть в любом браузере.
Попробуйте ввести букву или не целое число, чтобы увидеть работу по обработке ошибок.
<!-- BeginMoveVBS -->
<%@ Language=VBScript %>
<%' use this meta tag instead of adovbs.inc%>
<!--METADATA TYPE="typelib" uuid="00000205-0000-0010-8000-00AA006D2EA4" -->
<HTML>
<HEAD>
<TITLE>ADO Move Methods</TITLE>
<STYLE>
<!--
BODY {
font-family: "MS SANS SERIF",sans-serif;
}
.thead1 {
background-color: #008080;
font-family: 'Arial Narrow','Arial',sans-serif;
font-size: x-small;
color: white;
}
.tbody {
text-align: center;
background-color: #f7efde;
font-family: 'Arial Narrow','Arial',sans-serif;
font-size: x-small;
}
-->
</STYLE>
</HEAD>
<BODY>
<H3>ADO Move Methods</H3>
<% ' to integrate/test this code replace the
' Data Source value in the Connection string%>
<%
' connection and recordset variables
Dim Cnxn, strCnxn
Dim rsCustomers, strSQLCustomers
' 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 using object refs
Set rsCustomers = Server.CreateObject("ADODB.Recordset")
strSQLCustomers = "Customers"
rsCustomers.ActiveConnection = Cnxn
rsCustomers.CursorLocation = adUseClient
rsCustomers.CursorType = adOpenKeyset
rsCustomers.LockType = adLockOptimistic
rsCustomers.Source = strSQLCustomers
rsCustomers.Open
'Check number of user moves this session and increment by entry
Session("Clicks") = Session("Clicks") + Request.Form("MoveAmount")
Clicks = Session("Clicks")
' Move to last known recordset position plus amount passed
rsCustomers.Move CInt(Clicks)
'Error Handling
If rsCustomers.EOF Then
Session("Clicks") = rsCustomers.RecordCount
Response.Write "This is the Last Record"
rsCustomers.MoveLast
ElseIf rsCustomers.BOF Then
Session("Clicks") = 1
rsCustomers.MoveFirst
Response.Write "This is the First Record"
End If
%>
<H3>Current Record Number is <BR>
<%
If Session("Clicks") = 0 Then Session("Clicks") = 1
Response.Write(Session("Clicks") )%> of <%=rsCustomers.RecordCount%></H3>
<HR>
<TABLE COLSPAN=8 CELLPADDING=5 BORDER=0>
<!-- BEGIN column header row for Customer Table-->
<TR CLASS=thead1>
<TD>Company Name</TD>
<TD>Contact Name</TD>
<TD>City</TD>
</TR>
<% 'display%>
<TR CLASS=tbody>
<TD> <%= rsCustomers("CompanyName")%> </TD>
<TD> <%= rsCustomers("ContactName")%></TD>
<TD> <%= rsCustomers("City")%> </TD>
</TR>
</TABLE>
<HR>
<Input Type=Button Name=cmdDown Value="< ">
<Input Type=Button Name=cmdUp Value=" >">
<H5>Click Direction Arrows for Previous or Next Record
<BR> <BR>
<FORM Method = Post Action="MoveVbs.asp" Name=Form>
<TABLE>
<TR>
<TD><Input Type="Button" Name=Move Value="Move Amount "></TD>
<TD></TD>
<TD><Input Type="Text" Size="4" Name="MoveAmount" Value=0></TD>
<TR>
</TABLE>
Click Move Amount to use Move Method<br>
Enter Number of Records to Move + or - </H5> </FORM>
</BODY>
<Script Language = "VBScript">
Sub Move_OnClick
' Make sure move value entered is an integer
If IsNumeric(Document.Form.MoveAmount.Value)Then
Document.Form.MoveAmount.Value = CInt(Document.Form.MoveAmount.Value)
Document.Form.Submit
Else
MsgBox "You Must Enter a Number", ,"ADO-ASP Example"
Document.Form.MoveAmount.Value = 0
End If
End Sub
Sub cmdDown_OnClick
Document.Form.MoveAmount.Value = -1
Document.Form.Submit
End Sub
Sub cmdUp_OnClick
Document.Form.MoveAmount.Value = 1
Document.Form.Submit
End Sub
</Script>
<%
' clean up
If rsCustomers.State = adStateOpen then
rsCustomers.Close
End If
If Cnxn.State = adStateOpen then
Cnxn.Close
End If
%>
</HTML>
<!-- EndMoveVBS -->