在ADO中有与RDO.OpenResultset等效的东西吗? [英] Is there an equivalent to RDO.OpenResultset in ADO?
问题描述
所有都在标题中:-)
一些解释:
为了使用vb6使用C#(COM / Interop)时,数据访问存在性能问题。我不知道为什么,但是通过Interop在C#中代码慢了四倍。
In order to use a vb6 with C# (COM / Interop) I have a performance issue with Data Access. I don't know why but the code is four times slower in C# via Interop.
我正在尝试找到一种解决方法,我想用ADO代替rdo以获得性能。
I'm trying to find a workaround and I would to replace the rdo by ADO to gain performance.
旧代码(带有rdo):
old code (with rdo) :
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中添加代码:
Now the code in LoadCombo :
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修改此代码?
How to modify this code with ADO ?
问候,
Florian
推荐答案
对于您的记录集,您想使用以下代码:
For your recordset, you would want to use the following code:
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
然后为每个组合框调用
Call LoadCombo(cboOne, rs)
Set rs = rs.NextRecordset ' Instead of Fp.rs.MoreResults
...
如果还没有,则需要将ADO引用添加到您的项目中(可能是Microsoft Active Data Objects 2.8)
If you haven't already, you'll need to add the ADO reference to your project (probably Microsoft Active Data Objects 2.8)
这篇关于在ADO中有与RDO.OpenResultset等效的东西吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!