Weitergabe der aktuellen ADO-Datensatzes an eine andere Funktion
Vielleicht habe ich zu viel Zeit in .NET, aber es scheint seltsam, dass ich nicht so leicht passieren den aktuellen Datensatz aus einem ADO-RecordSet auf eine andere Methode.
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
Den spärlichen Infos die ich gefunden habe über das Thema sagt, pass das gesamte RecordSet oder einen neuen Datensatz erstellen, und kopieren Sie manuell jedes Feld, um es.
StackOverflow gibt es einen besseren Weg?
- Ein Datensatz ist nicht ein recordset, können Sie einen einzelnen Datensatz als ein recordset-Objekt, oder Sie können übergeben Sie einen Datensatz oder Datensätze aus einem recordset ein array (GetRows ) oder Zeichenfolge ( GetString ).
Du musst angemeldet sein, um einen Kommentar abzugeben.
Persönlich würde ich-pass die gesamte recordset in der ProcessRecord-Unterroutine. Recordsets werden immer als Verweis übergeben, so gibt es keinen overhead (performance oder Speicherverbrauch) übergeben ein recordset um. Nur stellen Sie sicher, dass Sie nicht zu bewegen, um den nächsten Datensatz in der ProcessRecord-Unterroutine.
ProcessRecord
kein Geschäft zu wissen, über alle Daten. Ich bemühe mich zu ernähren Methoden nur, was Sie brauchen.können Sie verwenden Sie die GetRows () - Methode zum laden der Daten in ein array und lass dann ProcessRecord Arbeit nur mit dem array, aber das 'trennt' die Methode aus dem dataset, und dies kann nicht das sein, was Sie wollen.
Den GetRows () - Methode nimmt die optionalen Argumente angeben, wie viele Zeilen, wo zu beginnen und die Felder zu bekommen
Also:
ProcessRecord(Daten.GetRows(1,adBookmarkCurrent))
sollte es für alle Felder
Leider Nein.. Sie kann nicht extrahiert einen einzelnen Datensatz aus einem Recordset.. als G. Mastros gesagt, es gibt keinen zusätzlichen Aufwand übergeben das ganze recordset-Verweis und die Arbeit mit dem aktuellen Datensatz, so dass Sie könnte genauso gut tun, wie es das