다음을 통해 공유


레코드 집합: 레코드 집합 다시 쿼리(ODBC)

이 항목은 MFC ODBC 클래스에 적용됩니다.

이 항목에서는 레코드 집합 개체를 사용하여 데이터베이스에서 자체 쿼리(즉, 새로 고침)하는 방법과 Requery 멤버 함수를 사용하여 다시 쿼리할 수 있는 경우에 대해 설명합니다.

레코드 집합을 다시 쿼리하는 주된 이유는 다음과 같습니다.

  • 사용자 또는 다른 사용자가 추가한 레코드 및 다른 사용자가 삭제한 레코드와 관련하여 레코드 집합을 최신 상태로 만듭니다(삭제한 레코드는 이미 레코드 집합에 반영됨).

  • 매개 변수 값 변경에 따라 레코드 집합을 새로 고칩니다.

레코드 집합을 최신 상태로 설정

레코드 집합 개체를 최신 상태로 유지하려면 레코드 집합 개체를 다시 쿼리하는 경우가 많습니다. 다중 사용자 데이터베이스 환경에서 다른 사용자는 레코드 집합의 수명 동안 데이터를 변경할 수 있습니다. 레코드 집합이 다른 사용자의 변경 내용을 반영하는 경우와 다른 사용자의 레코드 집합에 변경 내용이 반영되는 경우에 대한 자세한 내용은 Recordset: How Recordsets Update Records (ODBC)Dynaset을 참조하세요.

새 매개 변수를 기반으로 다시 쿼리

Requery사용하는 또 다른 빈번하고 똑같이 중요한 것은 매개 변수 값 변경에 따라 새 레코드 집합을 선택하는 것입니다.

매개 변수 값을 변경하여 호출하는 경우 쿼리 속도가 다시 호출 RequeryOpen 하는 경우보다 훨씬 빠를 수 있습니다.

다이너셋 및 스냅샷 다시 쿼리

다이너셋은 동적 최신 데이터가 포함된 레코드 집합을 표시하기 위한 것이므로 다른 사용자의 추가 사항을 반영하려는 경우 종종 다이너셋을 다시 쿼리하려고 합니다. 반면 스냅샷은 보고서를 준비하고 합계를 계산하는 동안 정적 콘텐츠에 안전하게 의존할 수 있기 때문에 유용합니다. 그래도 스냅샷 다시 쿼리할 수도 있습니다. 다중 사용자 환경에서는 다른 사용자가 데이터베이스를 변경함에 따라 스냅샷 데이터가 데이터 원본과의 동기화를 잃을 수 있습니다.

레코드 집합 개체를 다시 쿼리하려면

  1. 개체의 Requery 멤버 함수를 호출합니다.

또는 원래 레코드 집합을 닫고 다시 열 수 있습니다. 두 경우 모두 새 레코드 집합은 데이터 원본의 현재 상태를 나타냅니다.

예를 들어 레코드 뷰: 두 번째 레코드 집합에서 목록 상자 채우기를 참조 하세요.

성능을 최적화 Requery 하려면 레코드 집합의 필터 또는 정렬을 변경하지 마세요. 를 호출 Requery하기 전에 매개 변수 값만 변경합니다.

호출이 Requery 실패하면 호출을 다시 시도할 수 있습니다. 그렇지 않으면 애플리케이션이 정상적으로 종료됩니다. 여러 가지 이유로 호출 Requery 하거나 Open 실패할 수 있습니다. 네트워크 오류가 발생할 수 있습니다. 또는 호출 중에 기존 데이터가 릴리스된 후 새 데이터를 가져오기 전에 다른 사용자가 단독 액세스 권한을 얻을 수 있습니다. 또는 레코드 집합이 의존하는 테이블을 삭제할 수 있습니다.

참고 항목

레코드 집합(ODBC)
레코드 집합: 데이터 열 동적 바인딩(ODBC)
레코드 집합: 레코드 집합 만들기 및 닫기(ODBC)