学院首页>网络编程>ASP>使用ADO批量更新记录(源代码)

使用ADO批量更新记录(源代码)

作者: 来源:不详 添加时间:2006-5-25 19:12:26
  '**************************************
 ' Name: Batch Update using ADO
 ' Description:ADO has a great batch upda
 '  te feature that not many people take adv
 '  antage of. You can use it to update many
 '  records at once without making multiple
 '  round trips to the database. Here is how
 '  to use it.
 ' By: Found on the World Wide Web
 '
 '
 ' Inputs:None
 '
 ' Returns:None
 '
 'Assumes:None
 '
 'Side Effects:None
 '
 'Warranty:
 'code provided by Planet Source Code(tm)
 '  (http://www.Planet-Source-Code.com) 'as
 '  is', without warranties as to performanc
 '  e, fitness, merchantability,and any othe
 '  r warranty (whether expressed or implied
 '  ).
 '**************************************
 
 <HTML>
 <HEAD><TITLE>Place Document Title Here</TITLE></HEAD>
 <BODY BGColor=ffffff Text=000000>
 <%
 Set cn = Server.CreateObject("ADODB.Connection")
 Set rs = Server.CreateObject("ADODB.RecordSet")
 cn.Open Application("guestDSN")
 rs.ActiveConnection = cn
 rs.CursorType = adOpenStatic
 rs.LockType = adLockBatchOptimistic
 rs.Source = "SELECT * FROM authors"
 rs.Open
 If (rs("au_fname") = "Paul") or (rs("au_fname") = "Johnson") Then
 newval = "Melissa"
 Else
 newval = "Paul"
 End If
 If err <> 0 Then
 %>
 <B>Error opening RecordSet</B>
 <% Else %>
 <B>Opened Successfully</B><P>
 <% End If %>
 <H2>Before Batch Update</H2>
 <TABLE BORDER=1>
 <TR>
 <% For i = 0 To rs.Fields.Count - 1 %>
 <TD><B><%= rs(i).Name %></B></TD>
 <% Next %>
 </TR>
 <% For j = 1 To 5 %>
 <TR>
 <% For i = 0 To rs.Fields.Count - 1 %>
 <TD><%= rs(i) %></TD>
 <% Next %>
 </TR>
 <%
 rs.MoveNext
 Next
 rs.MoveFirst
 %>
 </TABLE>
 Move randomly In the table and perform updates To table.<BR>
 <%
 Randomize
 r1 = Int(rnd*3) + 1 ' n Itterations
 r2 = Int(rnd*2) + 1 ' n places skipped between updates
 For i = 1 To r1
 response.write "Itteration: " & i & "<BR>"
 rs("au_fname") = newval
 For j = 1 To r2
 rs.MoveNext
 response.write "Move Next<BR>"
 Next
 Next
 rs.UpdateBatch adAffectAll
 rs.Requery
 rs.MoveFirst
 %>
 <% rs.MoveFirst %>
 <H2>After Changes</H2>
 <TABLE BORDER=1>
 <TR>
 <% For i = 0 To rs.Fields.Count - 1 %>
 <TD><B><%= rs(i).Name %></B></TD>
 <% Next %>
 </TR>
 <% For j = 1 To 5 %>
 <TR>
 <% For i = 0 To rs.Fields.Count - 1 %>
 <TD><%= rs(i) %></TD>
 <% Next %>
 </TR>
 <%
 rs.MoveNext
 Next
 rs.Close
 Cn.Close
 %>
 </TABLE>

 
站内搜索