다음을 통해 공유


스냅샷

스냅샷 스냅샷 만들 때 존재했던 데이터의 정적 뷰를 반영하는 레코드 집합입니다. 스냅샷 열고 모든 레코드로 이동하면 포함된 레코드 집합과 해당 값은 호출Requery하여 스냅샷 다시 작성할 때까지 변경되지 않습니다.

참고 항목

이 항목은 MFC ODBC 클래스에 적용됩니다. MFC ODBC 클래스 대신 MFC DAO 클래스를 사용하는 경우 스냅샷 형식 레코드 집합에 대한 설명은 CDaoRecordset::Open을 참조하세요.

데이터베이스 클래스를 사용하여 업데이트 가능하거나 읽기 전용인 스냅샷 만들 수 있습니다. 다이나셋과 달리 업데이트 가능한 스냅샷 다른 사용자가 수행한 레코드 값의 변경 내용을 반영하지는 않지만 프로그램에서 수행한 업데이트 및 삭제를 반영합니다. 스냅샷 추가된 레코드는 호출Requery할 때까지 스냅샷 표시되지 않습니다.

스냅샷 ODBC 정적 커서입니다. 정적 커서는 해당 레코드로 스크롤할 때까지 실제로 데이터 행을 얻지 않습니다. 모든 레코드가 즉시 검색되도록 하려면 레코드 집합의 끝까지 스크롤한 다음 보려는 첫 번째 레코드로 스크롤할 수 있습니다. 그러나 끝까지 스크롤하면 추가 오버헤드가 수반되고 성능이 저하됩니다.

스냅샷은 보고서를 생성하거나 계산을 수행할 때처럼 작업 중에 데이터를 다시 기본 수정해야 할 때 가장 유용합니다. 그럼에도 불구하고 데이터 원본은 스냅샷 크게 다를 수 있으므로 때때로 다시 빌드할 수 있습니다.

스냅샷 지원은 수준 1 드라이버에 정적 커서 및 위치가 지정된 업데이트(업데이트 가능에 필요)를 제공하는 ODBC 커서 라이브러리를 기반으로 합니다. 이 지원을 위해 커서 라이브러리 DLL을 메모리에 로드해야 합니다. 개체를 CDatabase 생성하고 해당 멤버 함수를 OpenEx 호출할 때 dwOptions 매개 변수의 옵션을 지정 CDatabase::useCursorLib 해야 합니다. 멤버 함수를 Open 호출하면 커서 라이브러리가 기본적으로 로드됩니다. 스냅샷 대신 다이너셋을 사용하는 경우 커서 라이브러리를 로드하지 않으려는 것입니다.

스냅샷은 개체가 생성될 때 CDatabase ODBC 커서 라이브러리가 로드되었거나 사용 중인 ODBC 드라이버가 정적 커서를 지원하는 경우에만 사용할 수 있습니다.

참고 항목

일부 ODBC 드라이버의 경우 스냅샷(정적 커서)를 업데이트할 수 없습니다. 드라이버 설명서에서 지원되는 커서 유형과 지원하는 동시성 유형을 확인합니다. 업데이트 가능한 스냅샷 보장하려면 개체를 만들 CDatabase 때 커서 라이브러리를 메모리에 로드해야 합니다. 자세한 내용은 ODBC: ODBC 커서 라이브러리를 참조하세요.

참고 항목

스냅샷 및 다이내셋을 모두 사용하려면 두 개의 서로 다른 개체(두 개의 서로 다른 CDatabase 연결)를 기반으로 해야 합니다.

모든 레코드 집합과 공유하는 스냅샷 속성에 대한 자세한 내용은 레코드 집합(ODBC)을 참조하세요. ODBC 커서 라이브러리를 포함하여 ODBC 및 스냅샷 대한 자세한 내용은 ODBC를 참조하세요.

참고 항목

ODBC(Open Database Connectivity)