Filter与updatebatch混合使用实现批量更新
/*******部分代码*******/
- ]; W. y% N1 X. g. U K/*******idArr()和codeArr()为两个数组,其中,idArr()为filter数据过滤条件,codeArr()作为更新数据**********/
5 v8 r/ |8 X7 D5 V, G.......
' i8 p+ y: A3 k O$ X s
; W6 T( \' F) D- j: c
6 G0 k: _; S6 c2 h1 |6 ^; k
5 x- ~- U1 e% e6 y* ]2 v/ Ndim CRs,sql,FStr/ o+ P3 ?* b! J
sql=""
% [7 M$ i7 m- m: _9 t3 S% `8 T" b9 o$ G( p& X+ V
conn.begintrans5 ~. t4 ]2 o1 Q( G1 v: I
set CRs=server.CreateObject("adodb.recordset")# |3 S5 Q ?5 t" N( O( g
CRs.ActiveConnection=conn% S- q/ v: N4 a0 k/ j
CRs.CursorType=1) {$ @3 t, v" |4 `. L7 J3 f& R
CRs.LockType=3
% D: A! n1 G! P, CCRs.Source="select * from MB_DCManage"" r. E0 L2 R$ u! t( B% B$ }
CRs.Open 0 m N% @5 V0 ~- F# p' W
9 E" H! {9 r+ x, ~( u
for i=0 to ubound(codeArr)-1 Y+ `1 h5 B1 l3 T2 D5 Y* n( m! [
FStr="DCM_ID="idArr(i) '定义数据过滤, H: L- B( S& @5 t) H
CRs.Filter=FStr % Q; b7 I7 |& |2 F7 T7 z$ E! C
CRs("DCM_Code")=codeArr(i)+ x3 a4 v2 p0 I
next. T! F( K, \) M' V1 @; U8 `
CRs.UpdateBatch(3) '批量更新 " [5 Y/ P5 d6 P4 w% T
$ ^$ J1 q. L5 U........
) s! W$ W$ T+ h, {; Y7 s2 i; X* n3 W
/***********避免重复的进行open操作,但是filter本身也有效率问题;应该结合事务处理;filter可进行多条件选择;updateBatch各参数-----adAffectCurrent(1):当前位置;9 w8 R8 y. k0 K' }
adAffectGroup(2) :符合filter的数据" O+ c( u/ F. o1 V# O
adAffterAll(3) :当前所有数据***************/
点击图标进入精品网摘收藏 欢迎大家加入网络收藏夹