“VB6记录集”;开放式;与后端相比,显示结果需要更多时间

“VB6记录集”;开放式;与后端相比,显示结果需要更多时间,vb6,recordset,Vb6,Recordset,我正在使用查询查找数据。 从后端执行相同的查询所需的时间更少,即2秒。 但在代码中,相同的查询需要更多的时间,即recordset.open中的30秒。 数据库:Sybase 谢谢 代码示例: Dim rsRoute As New ADODB.Recordset --------------------------------------------- If rsRoute.State = 1 Then rsRoute.Close Set rsRoute =

我正在使用查询查找数据。 从后端执行相同的查询所需的时间更少,即2秒。 但在代码中,相同的查询需要更多的时间,即recordset.open中的30秒。 数据库:Sybase

谢谢

代码示例:

    Dim rsRoute As New ADODB.Recordset 
    ---------------------------------------------

    If rsRoute.State = 1 Then rsRoute.Close
    Set rsRoute = New ADODB.Recordset
    Set rsRoute.ActiveConnection = con
    rsRoute.CursorLocation = adUseClient
    rsRoute.CursorType = adOpenKeyset
    rsRoute.LockType = adLockBatchOptimistic
    strCmd = " select * from Table where CoumnVal =1 "
    con.Errors.Clear
    On Error Resume Next
    rsRoute.Open strCmd

有几种类型的游标类型和两种不同的游标位置类型。在Sybase数据库(当时的ASE)上,根据您的选择,性能差异很大。尝试客户端和服务器端游标,看看会发生什么

如果只需要循环一次结果,请选择adOpenForwardOnly光标类型。它通常会产生最佳性能


编辑:根据您发布的代码,尝试a)不锁定任何内容(例如LockType),b)使用adOpenForwardOnly光标,a)将光标保持在服务器上(AdUserServer)

如果显示一些代码,您可能会得到更多帮助。如何打开与数据库的连接?如何打开记录集?让我们看一些示例代码(或者真实代码,如果可以的话)。