VB6怎样让修改asscee数据库主键列数据的时间缩短? 5
VB6在删除asscee数据库的某一行时,往往要修改此行以下的主键ID值,以使编号连续,我用以下代码,在修改3500多行时所用的时间约6秒钟,时间很长,怎样优化代码,使时...
VB6在删除asscee数据库的某一行时,往往要修改此行以下的主键ID值,以使编号连续,我用以下代码,在修改3500多行时所用的时间约6秒钟,时间很长,怎样优化代码,使时间变短?代码如下:
'先确定文件真的存在,再保存修改的数据
Set MyFile = CreateObject("Scripting.FileSystemObject")
If MyFile.FileExists(数据库路径 & "\" & 数据库文件名) = True Then
M = VSF出库明细.Row ' VSF出库明细 为 VSFlexGrid控件
mydata = 数据库路径 & "\" & 数据库文件名 ' 指定数据库
myTable = "出库明细" ' 指定数据表
'建立与数据库的连接
Set cnn = New ADODB.Connection
With cnn
.Provider = "microsoft.jet.oledb.4.0"
.Open mydata
End With
'查询数据表
SQL = "delete * from " & myTable & " where ID=" & M ' 找到选择的行
Set rs = cnn.Execute(SQL) '删除记录
'数据库重新写入编号
If M < VSF出库明细.Rows - 1 Then ' 删除的是最后一行,就不要再编号了
For N = M To VSF出库明细.Rows - 2
SQL = "select * from " & myTable & " where ID=" & N + 1 ' 将ID为N+1的改为N
Set rs = New ADODB.Recordset
rs.Open SQL, cnn, adOpenKeyset, adLockOptimistic
'修改更新记录
rs.Fields(0) = N ' 将ID为N+1的改为N
rs.Update ' 更新数据表
Next
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End If
'下面就是删除 VSF出库明细 M 行的代码
。。。。
End If ’ 不好意思,只有这点分了 展开
'先确定文件真的存在,再保存修改的数据
Set MyFile = CreateObject("Scripting.FileSystemObject")
If MyFile.FileExists(数据库路径 & "\" & 数据库文件名) = True Then
M = VSF出库明细.Row ' VSF出库明细 为 VSFlexGrid控件
mydata = 数据库路径 & "\" & 数据库文件名 ' 指定数据库
myTable = "出库明细" ' 指定数据表
'建立与数据库的连接
Set cnn = New ADODB.Connection
With cnn
.Provider = "microsoft.jet.oledb.4.0"
.Open mydata
End With
'查询数据表
SQL = "delete * from " & myTable & " where ID=" & M ' 找到选择的行
Set rs = cnn.Execute(SQL) '删除记录
'数据库重新写入编号
If M < VSF出库明细.Rows - 1 Then ' 删除的是最后一行,就不要再编号了
For N = M To VSF出库明细.Rows - 2
SQL = "select * from " & myTable & " where ID=" & N + 1 ' 将ID为N+1的改为N
Set rs = New ADODB.Recordset
rs.Open SQL, cnn, adOpenKeyset, adLockOptimistic
'修改更新记录
rs.Fields(0) = N ' 将ID为N+1的改为N
rs.Update ' 更新数据表
Next
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End If
'下面就是删除 VSF出库明细 M 行的代码
。。。。
End If ’ 不好意思,只有这点分了 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询