Dies ist ein häufiges Problem, das dadurch verursacht wird, dass Zeilenzählungen als Ausgabe einer gespeicherten Prozedur interpretiert werden, wenn ADODB
verwendet wird mit SQL Server.
Um dies zu vermeiden, denken Sie daran,
festzulegenSET NOCOUNT ON;
in Ihrer gespeicherten Prozedur wird dies ADODB daran hindern, einen geschlossenen Datensatz zurückzugeben, oder wenn Sie dies aus irgendeinem Grund nicht tun möchten (nicht sicher, warum, da Sie immer @@ROWCOUNT
verwenden können um die Zeilenzählung zurückzugeben), können Sie
'Return the next recordset, which will be the result of the Stored Procedure, not
'the row count generated when SET NOCOUNT OFF (default).
Set rs = rs.NextRecordset()
was das nächste ADODB.Recordset
zurückgibt wenn ADODB erkannt hat, dass eine von der gespeicherten Prozedur zurückgegeben wird (möglicherweise ist es am besten, rs.State <> adStateClosed
zu überprüfen beim Umgang mit mehreren ADODB.Recordset-Objekten).