Metodo ILog::ReadRecord (txlogpub.h)
Leggere un record dal log.
Sintassi
HRESULT ReadRecord(
[in] LSN lsnToRead,
[in, out] LSN *plsnPrev,
[in, out] LSN *plsnNext,
[out] BYTE **ppbData,
[out] ULONG *pcbData
);
Parametri
[in] lsnToRead
LSN del record da leggere.
[in, out] plsnPrev
Puntatore all'LSN del record precedente (il record che precede immediatamente il record da leggere). Questo parametro può essere NULL se l'LSN del record precedente non è necessario. Questo parametro è 0 se nel log non è presente alcun record precedente o se si verifica un errore.
[in, out] plsnNext
Puntatore all'LSN del record successivo (il record segue immediatamente il record da leggere). Questo parametro può essere NULL se l'LSN del record successivo non è necessario. Questo parametro è MAXLSN (0x7FFFFFFFFFFFFFFF) se nel log non è presente alcun record successivo. Questo parametro è 0 se si verifica un errore.
[out] ppbData
Puntatore a una variabile che conterrà un puntatore ai dati del record in caso di restituzione. La memoria per questi dati viene allocata dal chiamante ReadRecord e liberata dal chiamante (vedere CoTaskMemFree). Questo parametro è NULL se si verifica un errore.
[out] pcbData
Puntatore a una variabile che riceve le dimensioni dei dati del record, in byte, in restituzione.
Valore restituito
Questo metodo può restituire i valori seguenti, nonché altri valori HRESULT .
Codice restituito | Descrizione |
---|---|
|
Il record è stato letto correttamente dal log. |
|
lsnToRead non rientra nei limiti correnti del log. Vedere ILog::GetLogLimits. |
|
lsnToRead si trova entro i limiti correnti del log, ma non è l'LSN di un record nel log. |
|
Il record non è stato restituito a causa di una mancanza di memoria. |
Commenti
Anche se i record aggiunti al log usando ILog::AppendRecord possono essere concatenati da più BLOBs, ReadRecord restituisce il record come singolo BLOB opaco di dati. ILog non fornisce alcun metodo per estrarre singoli BLOB dal record. È responsabilità del chiamante analizzare i dati nei record restituiti da ReadRecord.
Note ai chiamanti
Se il log contiene record molto grandi, questo metodo potrebbe non riuscire perché ReadRecord non è riuscito a allocare memoria sufficiente per i dati dei record. Se la dimensione dei record è associata o se è necessaria solo una parte iniziale del record, potrebbe essere più efficiente chiamare ILog::ReadRecordPrefix.Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | txlogpub.h |