VB根据条件批量更新MYSQL数据
vb6吧
全部回复
仅看楼主
level 1
myrcbank 楼主
各位大侠!请帮忙指导一下,我用VB6写了一个小工具,将300万条旧证件号转换成新证件号,不知道怎么原因运行超级慢,每更新一条记录估计要20秒左右,请帮忙看看是不是代码写错了,有没有更快捷的方法,谢谢!
系统配置:联系i5-7400,64位win10,12G内存,数据库为mysql8.0
代码如下:
on.open "DRIVER={MySQL ODBC 8.0 Unicode Driver}......"
cn.Cursorlocation=adUseClient
rs.open "select count(客户编号) as nm from 客户信息表",cn
k=rs.fields(0) '计算客户信息表中总客户数(300多万条)
rs.close
rs.open "select 客户编号,旧证件号,新证件号 from 客户信息表",cn,adOpenKeyset,adlockPessimistic,-1
if k>0 then
rs.MoveFirst
For i=1 to k
PiPei(rs.Fields(1)) '将旧证件后赋值给计算身份证校验码计算函数,返回值“XyM”为18位证件后
rs.Fields(2)=XyM
rs.Update
rs.MoveNext
Next i
end if
转换函数(PiPei)计算代码未贴出,应该根这个不相关,即使不用转换直接赋值速度也没改变
2020年08月19日 02点08分 1
level 1
Dim rs As ADODB.Recordset
Dim strSql As String
strSql = "select 客户编号,旧证件号,新证件号 from 客户信息表 "
Set rs = New ADODB.Recordset
rs.Open strSql, CN, adOpenKeyset, adLockReadOnly, adCmdText
Do While Not rs.EOF
CN.Execute "UPDATE 客户信息表 set 新证件号 ='" & PiPei(rs.Fields("旧证件号")) & "'"
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
2021年12月14日 03点12分 2
1