Набор записей. Выполнение обновления наборов записей (ODBC)

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

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

Основными причинами повторного запроса набора записей являются следующие:

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

  • Обновите набор записей на основе изменения значений параметров.

Перенос набора записей в актуальное время

Часто требуется повторно заставить объект набора записей, чтобы открыть его в актуальном состоянии. В среде базы данных с несколькими пользователями можно вносить изменения в данные во время жизни набора записей. Дополнительные сведения о том, когда набор записей отражает изменения, внесенные другими пользователями, и когда наборы записей других пользователей отражают изменения, см. в разделе Recordset: How Recordsets Update Records (ODBC) и Dynaset.

Повторный запрос на основе новых параметров

Еще одним частым и столь же важным является использование Requery для выбора нового набора записей на основе изменяющихся значений параметров.

Совет

Скорость запроса, вероятно, значительно быстрее при вызове Requery с изменяющимися значениями параметров, чем при повторном вызове Open .

Повторение Dynasets и моментальных снимков

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

Запрос объекта набора записей

  1. Вызовите функцию-член Requery объекта.

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

Пример см. в разделе "Представления записей": заполнение списка из второго набора записей.

Совет

Чтобы оптимизировать производительность, не изменяйте Requery фильтр или сортировку набора записей. Перед вызовом Requeryизмените только значение параметра.

Requery Если вызов завершается ошибкой, можно повторить вызов. В противном случае приложение должно завершиться корректно. Вызов или RequeryOpen может завершиться сбоем по каким-либо причинам. Возможно, возникает ошибка сети; или во время вызова после освобождения существующих данных, но до получения новых данных другой пользователь может получить монопольный доступ; или таблица, в которой зависит набор записей, может быть удалена.

См. также

Набор записей (ODBC)
Набор записей. Динамическая привязка столбцов данных (ODBC)
Набор записей. Создание и закрытие наборов записей (ODBC)