Снимок

Моментальный снимок — это набор записей, который отражает статическое представление данных, как оно существовало во время создания моментального снимка. При открытии моментального снимка и перемещении ко всем записям набор записей, содержащихся в нем, и их значения не изменяются, пока не будет перестроен моментальный снимок путем вызова Requery.

Примечание.

Этот раздел относится к классам ODBC библиотеки MFC. Если вы используете классы DAO MFC вместо классов ODBC MFC, см. раздел CDaoRecordset::Open для описания наборов записей типа моментальных снимков.

С помощью классов базы данных можно создавать обновляемые или доступные только для чтения моментальные снимки. В отличие от dynaset, обновляемый моментальный снимок не отражает изменения значений записей, сделанных другими пользователями, но он отражает обновления и удаления, сделанные программой. Записи, добавленные в моментальный снимок, не становятся видимыми для моментального снимка до вызова Requery.

Совет

Моментальный снимок — это статический курсор ODBC. Статические курсоры фактически не получают строку данных, пока не прокрутите эту запись. Чтобы убедиться, что все записи сразу же извлекаются, можно прокрутить его до конца набора записей, а затем прокрутить первую запись, которую вы хотите увидеть. Обратите внимание, что прокрутка до конца приводит к дополнительным затратам и может снизить производительность.

Моментальные снимки наиболее полезны, если данные должны оставаться фиксированными во время операций, как при создании отчета или выполнении вычислений. Даже поэтому источник данных может значительно отличаться от моментального снимка, поэтому может потребоваться перестроить его от времени.

Поддержка моментальных снимков основана на библиотеке курсоров ODBC, которая предоставляет статические курсоры и размещенные обновления (необходимые для возможности обновления) для любого драйвера уровня 1. Библиотека курсоров должна быть загружена в память для этой поддержки. При создании CDatabase объекта и вызове его OpenEx функции-члена необходимо указать CDatabase::useCursorLib параметр dwOptions . При вызове Open функции-члена библиотека курсоров загружается по умолчанию. Если вы используете dynasets вместо моментальных снимков, вы не хотите загружать библиотеку курсоров.

Моментальные снимки доступны только в том случае, если библиотека курсоров ODBC была загружена при CDatabase создании объекта или используемом драйвере ODBC поддерживает статические курсоры.

Примечание.

Для некоторых драйверов ODBC моментальные снимки (статические курсоры) могут быть недоступны для обновления. Ознакомьтесь с документацией по драйверу для поддерживаемых типов курсоров и поддерживаемых им типов параллелизма. Чтобы гарантировать обновляемые моментальные снимки, убедитесь, что библиотека курсоров загружается в память при создании CDatabase объекта. Дополнительные сведения см. в разделе ODBC: библиотека курсоров ODBC.

Примечание.

Если вы хотите использовать моментальные снимки и наборы dynaset, их необходимо использовать на двух разных объектах (два разных CDatabase подключения).

Дополнительные сведения о моментальных снимках свойств, общих для всех наборов записей, см. в разделе Recordset (ODBC). Дополнительные сведения об ODBC и моментальных снимках, включая библиотеку курсоров ODBC, см. в разделе ODBC.

См. также

Интерфейс ODBC