Метод ILog::ReadRecord (txlogpub.h)
Чтение записи из журнала.
Синтаксис
HRESULT ReadRecord(
[in] LSN lsnToRead,
[in, out] LSN *plsnPrev,
[in, out] LSN *plsnNext,
[out] BYTE **ppbData,
[out] ULONG *pcbData
);
Параметры
[in] lsnToRead
Номер LSN считываемой записи.
[in, out] plsnPrev
Указатель на номер LSN предыдущей записи (запись, непосредственно предшествующую считываемой записи). Этот параметр может иметь значение NULL , если номер LSN предыдущей записи не требуется. Этот параметр имеет значение 0, если в журнале нет предыдущей записи или возникает ошибка.
[in, out] plsnNext
Указатель на номер LSN следующей записи (запись сразу после записи для чтения). Этот параметр может иметь значение NULL , если номер LSN следующей записи не требуется. Этот параметр имеет значение MAXLSN (0x7FFFFFFFFFFFFFFF), если в журнале нет следующей записи. Этот параметр имеет значение 0 при возникновении ошибки.
[out] ppbData
Указатель на переменную, которая будет содержать указатель на данные записи при возврате. Память для этих данных выделяется с помощью ReadRecord и освобождается вызывающим объектом (см. CoTaskMemFree). При возникновении ошибки этот параметр имеет значение NULL .
[out] pcbData
Указатель на переменную, которая получает размер данных записи в байтах при возврате.
Возвращаемое значение
Этот метод может возвращать следующие значения, а также другие значения HRESULT .
Код возврата | Описание |
---|---|
|
Запись успешно считана из журнала. |
|
Значение lsnToRead выходит за пределы текущего журнала. См. раздел ILog::GetLogLimits. |
|
Значение lsnToRead находится в пределах текущего журнала, но не является номером LSN записи в журнале. |
|
Запись не была возвращена из-за нехватки памяти. |
Комментарии
Хотя записи, добавленные в журнал с помощью ILog::AppendRecord , могут быть объединены из нескольких BLOB-объектов, ReadRecord возвращает запись в виде одного непрозрачного большого двоичного объекта данных. ILog не предоставляет метод для извлечения отдельных BLOB-объектов из записи. Вызывающий объект отвечает за анализ данных в записях, возвращаемых методом ReadRecord.
Примечания к вызывающим абонентам
Если журнал содержит очень большие записи, этот метод может завершиться ошибкой, так как ReadRecord не удалось выделить достаточный объем памяти для данных записей. Если размер записей ограничен или требуется только начальная часть записи, может быть эффективнее вызвать ILog::ReadRecordPrefix.Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | txlogpub.h |