ILog::ReadRecord-Methode (txlogpub.h)
Liest einen Datensatz aus dem Protokoll.
Syntax
HRESULT ReadRecord(
[in] LSN lsnToRead,
[in, out] LSN *plsnPrev,
[in, out] LSN *plsnNext,
[out] BYTE **ppbData,
[out] ULONG *pcbData
);
Parameter
[in] lsnToRead
Die LSN des zu lesenden Datensatzes.
[in, out] plsnPrev
Ein Zeiger auf die LSN des vorherigen Datensatzes (der Datensatz unmittelbar vor dem zu lesenden Datensatz). Dieser Parameter kann NULL sein, wenn die LSN des vorherigen Datensatzes nicht benötigt wird. Dieser Parameter ist 0, wenn kein vorheriger Datensatz im Protokoll vorhanden ist oder ein Fehler auftritt.
[in, out] plsnNext
Ein Zeiger auf die LSN des nächsten Datensatzes (der Datensatz, der unmittelbar auf den zu lesenden Datensatz folgt). Dieser Parameter kann NULL sein, wenn die LSN des nächsten Datensatzes nicht benötigt wird. Dieser Parameter ist MAXLSN (0x7FFFFFFFFFFFFFFF), wenn kein nächster Datensatz im Protokoll vorhanden ist. Dieser Parameter ist 0, wenn ein Fehler auftritt.
[out] ppbData
Ein Zeiger auf eine Variable, die bei der Rückgabe einen Zeiger auf die Datensatzdaten enthält. Der Speicher für diese Daten wird von ReadRecord zugeordnet und vom Aufrufer freigegeben (siehe CoTaskMemFree). Dieser Parameter ist NULL , wenn ein Fehler auftritt.
[out] pcbData
Ein Zeiger auf eine Variable, die bei der Rückgabe die Größe der Datensatzdaten in Bytes empfängt.
Rückgabewert
Diese Methode kann die folgenden Werte sowie andere HRESULT-Werte zurückgeben.
Rückgabecode | BESCHREIBUNG |
---|---|
|
Der Datensatz wurde erfolgreich aus dem Protokoll gelesen. |
|
lsnToRead liegt außerhalb der aktuellen Grenzwerte des Protokolls. Siehe ILog::GetLogLimits. |
|
lsnToRead liegt innerhalb der aktuellen Grenzwerte des Protokolls, ist aber nicht die LSN eines Datensatzes im Protokoll. |
|
Der Datensatz wurde aufgrund eines Mangels an Arbeitsspeicher nicht zurückgegeben. |
Hinweise
Obwohl Datensätze, die mithilfe von ILog::AppendRecord an das Protokoll angefügt werden, aus mehreren BLOBs verkettet werden können, gibt ReadRecord den Datensatz als einzelnes undurchsichtiges Blob mit Daten zurück. ILog bietet keine Methode zum Extrahieren einzelner BLOBs aus dem Datensatz. Es liegt in der Verantwortung des Aufrufers, die Daten in Datensätzen zu analysieren, die von ReadRecord zurückgegeben werden.
Hinweise für Anrufer
Wenn das Protokoll sehr große Datensätze enthält, schlägt diese Methode möglicherweise fehl, da ReadRecord nicht genügend Arbeitsspeicher für die Datensatzdaten zuweisen konnte. Wenn die Größe von Datensätzen begrenzt ist oder Sie nur einen anfänglichen Teil des Datensatzes benötigen, kann es effizienter sein, ILog::ReadRecordPrefix aufzurufen.Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | txlogpub.h |