asp如何用ADO批量更新记录?
时间:2010-06-10 18:42:00
如何用ADO批量更新记录?
是的,ADO有这项功能,不过好像用的人不太多(不了解还是不会用呢?):
<HTML>
<HEAD>
<TITLE>ADO批量更新记录 - asp之家</TITLE>
</HEAD>
<BODY >
<%
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") = "Liyanbing") or (rs("au_fname") = "Wuxiaotao") Then
newval = "Songyingte"
Else
newval = "Liyanbing"
End If
If err <> 0 Then
%>
<B>噢,记录集打开失败!</B>
<% Else %>
<B>恭喜,记录集打开成功!</B><P>
<% End If %>
<H2>在批量更新之前</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>
在表中随机移动并执行更新!<BR>
<%
Randomize
r1 = Int(rnd*3) + 1
' 累计n次
r2 = Int(rnd*2) + 1
' 在更新数据之间跳过n位
For i = 1 To r1
response.write "累计: " & i & "<BR>"
rs("au_fname") = newval
For j = 1 To r2
rs.MoveNext
response.write "移动下一个<BR>"
Next
Next
rs.UpdateBatch adAffectAll
rs.Requery
rs.MoveFirst
%>
<% rs.MoveFirst %>
<H2>在批量更新之后</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>