NextRecordset 메서드(ADO)
현재 Recordset 개체를 지우고 일련의 명령을 진행하여 다음 Recordset를 반환합니다.
구문
Set recordset2 = recordset1.NextRecordset(RecordsAffected )
Return Value
Recordset 개체를 반환합니다. 구문 모델에서 Recordset1 및 Recordset2는 동일한 Recordset 개체이거나 별도의 개체를 사용할 수 있습니다. 별도의 Recordset 개체를 사용하는 경우 NextRecordset가 호출된 후 원래 Recordset(recordset1)에서 ActiveConnection 속성을 다시 설정하면 오류가 발생합니다.
매개 변수
RecordsAffected
(선택 사항) 공급자가 현재 작업에 영향을 주는 레코드 수를 반환하는 Long 변수입니다.
참고
이 매개 변수는 작업의 영향을 받는 레코드 수만 반환하며, Recordset를 생성하는 데 사용되는 select 문에서는 레코드 수를 반환하지 않습니다.
설명
NextRecordset 메서드를 사용하여 복합 명령 문에서 다음 명령의 결과를 반환하거나 여러 결과를 반환하는 저장 프로시저를 반환합니다. Command의 Execute 메서드 또는 Recordset의 Open 메서드를 사용하여 복합 명령문을 기반으로 Recordset 개체를 여는 경우(예: "SELECT * FROM table1; SELECT * FROM table2") ADO는 첫 번째 명령만 실행하고 결과를 Recordset에 반환합니다. 문에서 후속 명령의 결과에 액세스하려면 NextRecordset 메서드를 호출합니다.
추가 결과가 있고 복합 문을 포함하는 Recordset가 프로세스 경계를 넘어 연결이 끊어지거나 마샬링되지 않는 한 NextRecordset 메서드는 Recordset 개체를 계속 반환합니다. 행 반환 명령이 실행되었지만 레코드를 반환하지 않는 경우 반환된 Recordset 개체가 열리지만 비어 있습니다. BOF 및 EOF 속성이 모두 True인지 확인하여 이 사례를 테스트합니다. 행 반환이 아닌 명령이 실행되면 반환된 Recordset 개체가 닫히며 Recordset에서 State 속성을 테스트하여 확인할 수 있습니다. 결과가 더 이상 없으면 Recordset가 Nothing으로 설정됩니다.
NextRecordset 메서드는 연결이 끊긴 Recordset 개체에서 사용할 수 없습니다. 여기서 ActiveConnection은 Nothing(Microsoft Visual Basic에서) 또는 NULL(다른 언어)로 설정되었습니다.
즉시 업데이트 모드에서 편집이 진행 중인 경우 NextRecordset 메서드를 호출하면 오류가 발생합니다. 먼저 Update 또는 CancelUpdate 메서드를 호출합니다.
Parameters 컬렉션을 채우거나 원래 Open 또는 Execute 호출을 통해 배열을 전달하여 복합 문에서 둘 이상의 명령에 대한 매개 변수를 전달하려면 매개 변수가 명령 계열의 해당 명령과 컬렉션 또는 배열의 순서가 동일해야 합니다. 출력 매개 변수 값을 읽기 전에 모든 결과 읽기를 완료해야 합니다.
OLE DB 공급자는 복합 문의 각 명령이 실행되는 시기를 결정합니다. 예를 들어 SQL Server용 Microsoft OLE DB Provider는 복합 문을 받으면 모든 명령을 일괄 처리로 실행합니다. 결과 Recordset는 NextRecordset를 호출할 때 반환됩니다.
그러나 다른 공급자는 NextRecordset가 호출된 후에만 문에서 다음 명령을 실행할 수 있습니다. 이러한 공급자의 경우 전체 명령 문을 단계별로 실행하기 전에 Recordset 개체를 명시적으로 닫으면 ADO는 나머지 명령을 실행하지 않습니다.