스냅샷
스냅샷 스냅샷 만들 때 존재했던 데이터의 정적 뷰를 반영하는 레코드 집합입니다. 스냅샷 열고 모든 레코드로 이동하면 포함된 레코드 집합과 해당 값은 호출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를 참조하세요.