ILog::ReadRecordPrefix メソッド (txlogpub.h)

レコードの最初の部分をログから読み取ります。

構文

HRESULT ReadRecordPrefix(
  [in]      LSN   lsnToRead,
  [in, out] LSN   *plsnPrev,
  [in, out] LSN   *plsnNext,
  [out]     BYTE  *pbData,
  [in, out] ULONG *pcbData,
  [out]     ULONG *pcbRecord
);

パラメーター

[in] lsnToRead

読み取るレコードの LSN。

[in, out] plsnPrev

前のレコード (読み取るレコードのすぐ前のレコード) の LSN へのポインター。 前のレコードの LSN が不要な場合は 、NULL を 渡すことができます。 このパラメーターは、ログに以前のレコードがない場合、またはエラーが発生した場合は 0 です。

[in, out] plsnNext

次のレコード (読み取るレコードの直後のレコード) の LSN へのポインター。 次のレコードの LSN が必要ない場合は 、NULL を 渡すことができます。 ログに次のレコードがない場合、このパラメーターは MAXLSN (0x7FFFFFFFFFFFFFFF) です。 エラーが発生した場合、このパラメーターは 0 です。

[out] pbData

レコード データの読み取り先となるバッファーへのポインター。

[in, out] pcbData

入力時のバッファーのサイズ (バイト単位) を含み、戻り時に読み取られたレコード データのサイズ (バイト単位) を含む変数へのポインター。

[out] pcbRecord

戻り値のレコード全体のサイズをバイト単位で格納する変数へのポインター。 レコード全体のサイズが不要な場合は 、NULL を 渡すことができます。

戻り値

このメソッドは、次の値と他の HRESULT 値を返すことができます。

リターン コード 説明
S_OK
レコードがログから正常に読み取られました。
XACT_E_INVALIDLSN
lsnToRead は、ログの現在の制限の範囲外です。 「ILog::GetLogLimits」を参照してください。
E_INVALIDARG
lsnToRead はログの現在の制限内にありますが、ログ内のレコードの LSN ではありません。

解説

ILog::AppendRecord を使用してログに追加されたレコードは複数の BLOB から連結できますが、ReadRecordPrefix はレコードを単一の不透明なデータ BLOB として返します。 ILog には、レコードから個々の BLOB を抽出するメソッドはありません。 ReadRecordPrefix によって返されるレコードのデータを解析するのは呼び出し元の責任です。

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー txlogpub.h

関連項目

Ilog