将当前的ADO记录传递给另一个功能

nun*_*bar 8 vb6 vba adodb

也许我在.NET中花了太多时间,但似乎奇怪的是我无法轻松地将当前的ADO RecordSet记录传递给另一种方法.

Private Sub ProcessData(data As ADODB.Recordset)
    While (Not data.EOF)
        ProcessRecord ([data.CurrentRecord]) ' <-- There is no CurrentRecord property.
        data.MoveNext        
    Wend
End Sub

Private Sub ProcessRecord(singleRecord As ADODB.Record)
    ' Do stuff.
End Sub
Run Code Online (Sandbox Code Playgroud)

我在主题上找到的信息很少,表示要传递整个RecordSet或创建一个新记录并手动将每个字段复制到它.

StackOverflow,有更好的方法吗?

G M*_*ros 4

就我个人而言,我会将整个记录集传递给 ProcessRecord 子例程。记录集始终通过引用传递,因此传递记录集不会产生任何开销(性能或内存消耗)。只需确保您没有移至 ProcessRecord 子例程中的下一条记录即可。

  • 我很可能只会传递整个记录集,只是“ProcessRecord”没有必要了解所有数据。我努力只为方法提供他们需要的东西。 (2认同)