【发布时间】:2012-01-05 17:59:25
【问题描述】:
我正在运行一个 vb6 程序,该程序循环遍历数据库表中的许多记录并将日期输入到字段中。这将需要几个小时才能运行。
我注意到表中的记录数每隔几秒就增加 1,然后减少 1(回到原始计数)。这是有原因的吗?
我正在使用 VB6 记录集和更新功能,即 rs.update。我没有插入任何新记录。
代码如下:
rs.Open "select reference,value1,datefield from datetable where field1 = 'value1' " & _
"order by reference", objAuditCon.ActiveCon, adOpenStatic, adLockPessimistic
Do While Not rs.EOF
intReadCount = intReadCount + 1
DoEvents
If Not IsNull(rs("value1")) Then
testArray = Split(rs("value1"), ",")
rs2.Open "SELECT Date FROM TBL_TestTable WHERE Record_URN = '" & testArray(1) & "'", objSystemCon.ActiveCon, adOpenStatic, adLockReadOnly
If rs2.EOF Then
End If
If Not rs2.EOF Then
rs("DateField") = Format$(rs2("Date"), "dd mmm yy h:mm:ss")
rs.Update
intWriteCount = intWriteCount + 1
End If
rs2.Close
Else
End If
rs.MoveNext
Loop
rs.Close
【问题讨论】:
-
我看不出记录数增加的原因,但只是好奇,您为什么不执行 SQL 语句来更新信息而不是循环遍历记录?然后你可以一次更新一堆。
-
为什么不创建一个存储过程,然后通过代码执行呢?这应该会稍微缩短您的处理时间。
-
我在想可能有一个额外的行用于缓存目的?
-
您如何确定记录数正在发生变化?
-
CraigJ,我只是在 SQL Studio 管理器中运行计数,即从日期表中选择计数(*)?每秒按一下执行按钮,计数偶尔会增加一条记录,然后立即减少一条记录?你有什么想法?谢谢。