Bagikan melalui


ILog::Metode ReadRecord (txlogpub.h)

Membaca rekaman dari log.

Sintaks

HRESULT ReadRecord(
  [in]      LSN   lsnToRead,
  [in, out] LSN   *plsnPrev,
  [in, out] LSN   *plsnNext,
  [out]     BYTE  **ppbData,
  [out]     ULONG *pcbData
);

Parameter

[in] lsnToRead

LSN catatan yang akan dibaca.

[in, out] plsnPrev

Penunjuk ke LSN rekaman sebelumnya (rekaman segera mendahului rekaman yang akan dibaca). Parameter ini bisa NULL jika LSN dari rekaman sebelumnya tidak diperlukan. Parameter ini adalah 0 jika tidak ada rekaman sebelumnya dalam log, atau jika terjadi kesalahan.

[in, out] plsnNext

Penunjuk ke LSN rekaman berikutnya (rekaman segera mengikuti rekaman untuk dibaca). Parameter ini bisa NULL jika LSN rekaman berikutnya tidak diperlukan. Parameter ini adalah MAXLSN (0x7FFFFFFFFFFFFFFF) jika tidak ada rekaman berikutnya dalam log. Parameter ini adalah 0 jika terjadi kesalahan.

[out] ppbData

Penunjuk ke variabel yang akan berisi penunjuk ke data rekaman saat dikembalikan. Memori untuk data ini dialokasikan oleh ReadRecord dan dibebaskan oleh pemanggil (lihat CoTaskMemFree). Parameter ini adalah NULL jika terjadi kesalahan.

[out] pcbData

Penunjuk ke variabel yang menerima ukuran data rekaman, dalam byte, saat dikembalikan.

Nilai kembali

Metode ini dapat mengembalikan nilai berikut, serta nilai HRESULT lainnya.

Menampilkan kode Deskripsi
S_OK
Rekaman berhasil dibaca dari log.
XACT_E_INVALIDLSN
lsnToRead berada di luar batas log saat ini. Lihat ILog::GetLogLimits.
E_INVALIDARG
lsnToRead berada dalam batas log saat ini, tetapi bukan LSN rekaman dalam log.
E_OUTOFMEMORY
Rekaman tidak dikembalikan karena kurangnya memori.

Keterangan

Meskipun rekaman ditambahkan ke log menggunakan ILog::AppendRecord dapat digabungkan dari beberapa BLOB, ReadRecord mengembalikan rekaman sebagai blob data buram tunggal. ILog tidak menyediakan metode untuk mengekstrak blob individual dari catatan. Pemanggil bertanggung jawab untuk mengurai data dalam rekaman yang dikembalikan oleh ReadRecord.

Catatan untuk Penelepon

Jika log berisi rekaman yang sangat besar, metode ini mungkin gagal karena ReadRecord tidak dapat mengalokasikan memori yang cukup untuk data rekaman. Jika ukuran rekaman dibatasi atau jika Anda hanya memerlukan bagian awal rekaman, mungkin lebih efisien untuk memanggil ILog::ReadRecordPrefix.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header txlogpub.h

Lihat juga

ILog