Поделиться через


Набор записей. Закладки и абсолютное позиционирование (ODBC)

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

При переходе по набору записей часто требуется способ возврата к определенной записи. Закладка записи и абсолютная позиция предоставляют два таких метода.

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

Закладки в ODBC MFC

Закладка однозначно идентифицирует запись. При переходе по набору записей нельзя всегда полагаться на абсолютную позицию записи, так как записи можно удалить из набора записей. Надежный способ отслеживания положения записи — использовать ее закладку. Класс CRecordset предоставляет функции-члены для:

  • Получение закладки текущей записи, чтобы сохранить ее в переменной (GetBookmark).

  • Быстрый переход к заданной записи путем указания своей закладки, сохраненной ранее в переменной (SetBookmark).

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

// rs is a CRecordset or
// CRecordset-derived object

CDBVariant varRecordToReturnTo;
rs.GetBookmark( varRecordToReturnTo );

// More code in which you
// move to other records

rs.SetBookmark( varRecordToReturnTo );

Не нужно извлекать базовый тип данных из объекта КЛАССА CDBVariant. Назначьте значение и GetBookmark вернитесь в эту закладку.SetBookmark

Примечание.

В зависимости от типа драйвера ODBC и набора записей закладки могут не поддерживаться. Вы можете легко определить, поддерживаются ли закладки, вызвав CRecordset::CanBookmark. Кроме того, если поддерживаются закладки, необходимо явно выбрать их реализацию, указав CRecordset::useBookmarks параметр в функции CRecordset::Open member. Также следует проверить сохраняемость закладок после определенных операций набора записей. Например, если вы Requery используете набор записей, закладки могут перестать быть допустимыми. Вызовите CDatabase::GetBookmarkPersistence , чтобы проверить, можно ли безопасно вызывать SetBookmark.

Абсолютные позиции в ODBC MFC

Кроме закладок, класс CRecordset позволяет задать текущую запись, указав порядковое положение. Это называется абсолютным положением.

Примечание.

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

Чтобы переместить текущий указатель записи с помощью абсолютной позиции, вызовите CRecordset::SetAbsolutePosition. При передаче значения SetAbsolutePositionв запись, соответствующая этой порядковой позиции, становится текущей записью.

Примечание.

Абсолютная позиция записи потенциально ненадежна. Если пользователь удаляет записи из набора записей, порядковый номер любого последующего изменения записи. Закладки — это рекомендуемый метод перемещения текущей записи. Дополнительные сведения см. в разделе "Закладки" в ODBC MFC.

Дополнительные сведения о навигации по набору записей см. в разделе Recordset: Scrolling (ODBC).

См. также

Набор записей (ODBC)