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

'**************************************
' 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
' ).
'**************************************

1<html>
2<head><title>Place Document Title Here</title></head>
3<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 &lt;&gt; 0 Then

1<b>Error opening RecordSet</b>   

Else

1<b>Opened Successfully</b><p>   

End If

1<h2>Before Batch Update</h2>
2<table border="1">
3<tr>   

For i = 0 To rs.Fields.Count - 1

1<td><b>```
2= rs(i).Name 
3```</b></td>   

Next

1</tr>   

For j = 1 To 5

1<tr>   

For i = 0 To rs.Fields.Count - 1

1<td>```
2= rs(i) 
3```</td>   

Next

1</tr>   

rs.MoveNext
Next
rs.MoveFirst

1</table>   
2Move randomly In the table and perform updates To table.<br/>   

Randomize
r1 = Int(rnd3) + 1 ' n Itterations
r2 = Int(rnd
2) + 1 ' n places skipped between updates
For i = 1 To r1
response.write "Itteration: " &amp; i &amp; "<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

1<h2>After Changes</h2>
2<table border="1">
3<tr>   

For i = 0 To rs.Fields.Count - 1

1<td><b>```
2= rs(i).Name 
3```</b></td>   

Next

1</tr>   

For j = 1 To 5

1<tr>   

For i = 0 To rs.Fields.Count - 1

1<td>```
2= rs(i) 
3```</td>   

Next

1</tr>   

rs.MoveNext
Next
rs.Close
Cn.Close

1</table></p></body></html>
Published At
Categories with Web编程
comments powered by Disqus