Набор записей. Порядок обновления записей в наборе (ODBC)

Этот раздел относится к классам ODBC библиотеки MFC.

Помимо возможности выбора записей из источника данных, наборы записей могут (необязательно) обновлять или удалять выбранные записи или добавлять новые записи. Три фактора определяют возможность обновления набора записей: можно ли обновить подключенный источник данных, параметры, заданные при создании объекта набора записей и созданного SQL.

Примечание.

SQL, на котором CRecordset основан объект, может повлиять на возможность обновления набора записей. Например, если SQL содержит соединение или предложение GROUP BY , MFC задает возможность обновления значение FALSE.

Примечание.

Этот раздел относится к объектам, производным от CRecordset, в которых пакетное получение строк не реализовано. Если вы используете массовое получение строк, ознакомьтесь с набором записей: извлечение записей в пакетной службе (ODBC).

В этом разделе рассматриваются следующие вопросы.

Набор записей: How AddNew, Edit и Delete Work (ODBC) описывает действия этих функций с точки зрения набора записей.

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

Роль в обновлении набора записей

В следующей таблице показано, как использовать наборы записей для добавления, редактирования или удаления записей вместе с тем, что делает платформа.

Обновление набора записей: вы и платформа

Вы Платформа
Определите, можно ли обновить источник данных (или добавить). Предоставляет функции-члены CDatabase для тестирования возможности обновления или добавления источника данных.
Откройте обновляемую набор записей (любого типа).
Определите, является ли набор записей обновляемым путем вызова CRecordset функций обновления, таких как CanUpdate или CanAppend.
Вызов функций-членов набора записей для добавления, изменения и удаления записей. Управляет механикой обмена данными между объектом набора записей и источником данных.
При необходимости используйте транзакции для управления процессом обновления. Предоставляет CDatabase функции-члены для поддержки транзакций.

Дополнительные сведения о транзакциях см. в разделе "Транзакция( ODBC)".

Буфер редактирования

В совокупности элементы данных поля набора записей служат буфером редактирования, который содержит одну запись — текущую запись. Операции обновления используют этот буфер для работы с текущей записью.

  • При добавлении записи буфер редактирования используется для создания новой записи. После завершения добавления записи запись, которая ранее была текущей, снова становится текущей.

  • При обновлении (редактировании) записи буфер редактирования используется для задания элементов данных поля набора записей новым значениям. После завершения обновления обновленная запись по-прежнему является текущей.

При вызове AddNew или Edit текущая запись хранится, чтобы ее можно было восстановить позже по мере необходимости. При вызове Delete текущая запись не хранится, но помечается как удаленная, и необходимо прокрутить другую запись.

Примечание.

Буфер редактирования не играет роли в удалении записей. При удалении текущей записи запись помечается как удаленная, и набор записей не находится в записи, пока не прокрутите страницу до другой записи.

Dynasets и Snapshots

Dynasets обновляет содержимое записи при прокрутке до записи. Моментальные снимки представляют собой статические представления записей, поэтому содержимое записи не обновляется, если вы не вызываете Requery. Чтобы использовать все функциональные возможности dynaset, необходимо работать с драйвером ODBC, соответствующим правильному уровню поддержки API ODBC. Дополнительные сведения см. в разделе ODBC и Dynaset.

См. также

Набор записей (ODBC)
Наборы записей. Принципы работы функций AddNew, Edit и Delete (ODBC)