我得到了下面的代码,它将db中的行读取到activex控件中,然后尝试将这些值放入数组中。VXData1ActiveX是专有的,没有细节,但基本上它关心ADO连接、执行SQL命令和将结果集放入控件元素。
//put all records from the db into the vxData1 datagrid
vxData1.SQLCommand = "SELECT x,y,z FROM t ORDER BY z"
//put the datagrid values into an array
Dim Array_Werte(500) As String
vxData1.MoveFirst
For i = 0 To 500 Step 1
Array_Werte(i) = vxData1.Column1 & ";" & vxData1.Column2 & ";" & vxData1.Column3
vxData1.MoveNext
Next i
出现以下问题:数组并不总是包含它应该拥有的所有数据(非常不可预测)。
当我调试代码并遍历循环时,一切都像一个魔咒。所以我得出结论,当我进入循环时,耗时的数据库查询(大数据集)还没有完成。
现在我想知道:这是代码的问题还是vba或脚本语言的一个“特性”?
我在网上看到过一些东西,比如在那里放置一个User.wait,但我永远不知道我的查询需要多长时间,这看起来真的很糟糕。