Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Моментальный снимок — это набор записей, который отражает статическое представление данных, как оно существовало во время создания моментального снимка. При открытии моментального снимка и переходе ко всем записям, набор записей, который он содержит, и их значения не изменяются до тех пор, пока моментальный снимок не будет перестроен через вызов Requery.
Примечание.
Этот раздел относится к классам ODBC библиотеки MFC. Если вы используете классы DAO MFC вместо классов ODBC MFC, см. раздел CDaoRecordset::Open для описания наборов записей типа моментальных снимков.
С помощью классов базы данных можно создавать обновляемые или доступные только для чтения снимки. В отличие от динамического набора данных, обновляемая моментальная копия не отражает изменения значений записей, сделанные другими пользователями, но она отражает обновления и удаления, выполненные вашей программой. Записи, добавленные в созданный моментальный снимок, не становятся доступными в моментальном снимке до вызова Requery.
Совет
Моментальный снимок — это статический курсор ODBC. Статические курсоры фактически не получают строку данных, пока не прокрутите эту запись. Чтобы убедиться, что все записи сразу же извлекаются, можно прокрутить его до конца набора записей, а затем прокрутить первую запись, которую вы хотите увидеть. Обратите внимание, что прокрутка до конца приводит к дополнительным затратам и может снизить производительность.
Моментальные снимки наиболее полезны, если данные должны оставаться фиксированными во время операций, как при создании отчета или выполнении вычислений. Тем не менее, источник данных может значительно отличаться от вашего моментального снимка, поэтому может потребоваться его периодическое перестроение.
Поддержка моментальных снимков основана на библиотеке курсоров ODBC, которая предоставляет статические курсоры и позиционированные обновления (необходимые для возможности обновления) для любого драйвера первого уровня. Библиотека курсоров (DLL) должна быть загружена в память для поддержки этой функции. При создании CDatabase объекта и вызове его OpenEx метода необходимо указать CDatabase::useCursorLib опцию параметра dwOptions. При вызове Open функции-члена библиотека курсоров загружается по умолчанию. Если вы используете динамические наборы данных (dynasets) вместо моментальных снимков (snapshots), вы не хотите загружать библиотеку курсоров.
Моментальные снимки доступны только в том случае, если библиотека курсоров ODBC была загружена при создании объекта CDatabase, или если используемый вами драйвер ODBC поддерживает статические курсоры.
Примечание.
Для некоторых драйверов ODBC моментальные снимки (статические курсоры) могут быть недоступны для обновления. Ознакомьтесь с документацией по драйверу для поддерживаемых типов курсоров и поддерживаемых им типов параллелизма. Чтобы гарантировать возможность обновления моментальных снимков, убедитесь, что при создании объекта CDatabase вы загружаете библиотеку курсоров в память. Дополнительные сведения см. в разделе ODBC: библиотека курсоров ODBC.
Примечание.
Если вы хотите использовать и моментальные снимки, и наборы dynaset, их необходимо базировать на двух разных объектах (двух разных CDatabase подключениях).
Дополнительные сведения о свойствах моментальных снимков, общих для всех наборов записей, см. в разделе Recordset (ODBC). Дополнительные сведения об ODBC и моментальных снимках, включая библиотеку курсоров ODBC, см. в разделе ODBC.