首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ADO中有没有等同于RDO.OpenResultset的东西?

在ADO中有没有等同于RDO.OpenResultset的东西?
EN

Stack Overflow用户
提问于 2010-09-29 21:36:13
回答 2查看 1.3K关注 0票数 1

所有内容都在标题中:-)

一些解释:

为了在C# (COM / Interop)中使用vb6,我在数据访问方面遇到了性能问题。我不知道为什么,但是通过互操作,代码在C#中要慢四倍。

我正在尝试找到一种解决方法,我会用ADO替换rdo来获得性能。

旧代码(使用rdo):

代码语言:javascript
复制
strSelect = _
        QUERY1 & ";" & _
        QUERY2 & ";" & _
        QUERY3 & ";" & _
        QUERY4 & ";" & _
        QUERY5 & ";" & _
        QUERY6

 'Fp.Cn is a rdoConnection
 Set Fp.rs = Fp.Cn.OpenResultset(strSelect)


'ComboBox 1
    Call LoadCombo(cboOne)
    Fp.rs.MoreResults
'ComboBox 2
    Call LoadCombo(cboTwo)
    Fp.rs.MoreResults
'ComboBox 3
    Call LoadCombo(cboThree)
    Fp.rs.MoreResults
'ComboBox 4
    Call LoadCombo(cboFour)
    Fp.rs.MoreResults
'ComboBox 5
    Call LoadCombo(cboFive)
    Fp.rs.MoreResults
'ComboBox 6
    Call LoadCombo(cboSix)
    Fp.rs.MoreResults
Fp.rs.Close

下面是LoadCombo中的代码:

代码语言:javascript
复制
Public Sub LoadCombo(ByRef cboComboBox As ComboBox, ByRef rslResultSet As rdoResultset)


 cboComboBox.Clear

    With rslResultSet
        While Not .EOF
            cboComboBox.AddItem .rdoColumns(1)
            cboComboBox.ItemData(cboComboBox.NewIndex) = .rdoColumns(0)
            .MoveNext
        Wend
    End With
End Sub

如何用ADO修改这段代码?

致以敬意,

弗洛里安

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-29 21:51:56

对于您的记录集,您可能希望使用以下代码:

代码语言:javascript
复制
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Set rs = New ADODB.Recordset

conn.Open "YourDSN", "username", "pwd" ' Or other appropriate conn string here

rs.Open strSelect, conn ' This is your OpenResultset equivalent

然后对于每个组合框,调用

代码语言:javascript
复制
Call LoadCombo(cboOne, rs) 
Set rs = rs.NextRecordset  ' Instead of Fp.rs.MoreResults    
...

如果您尚未添加ADO引用,则需要将其添加到项目中(可能是Microsoft Active Data Objects 2.8)

票数 1
EN

Stack Overflow用户

发布于 2010-10-01 21:01:23

这是ADO中最接近的等价物:

代码语言:javascript
复制
' Fp.Cn is an active and open ADODB.Connection  '
' Fp.rs is an ADODB.Recordset object  '

Set Fp.rs = Fp.Cn.Execute(strSelect)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3822099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档