다음을 통해 공유


ILog::AppendRecord 메서드(txlogpub.h)

로그의 끝에 새 레코드를 씁니다.

구문

HRESULT AppendRecord(
  [in]      BLOB  *rgBlob,
  [in]      ULONG cBlob,
  [in]      BOOL  fForceNow,
  [in, out] LSN   *plsn
);

매개 변수

[in] rgBlob

쓸 데이터의 BLOB 배열에 대한 포인터입니다.

[in] cBlob

요소의 rgBlob 배열 크기입니다.

[in] fForceNow

데이터를 디스크에 강제 적용할지 여부를 나타냅니다. TRUE이면 호출이 반환되기 전에 이 레코드까지의 로그 내용을 강제로 디스크에 추가해야 합니다. FALSE이면 호출이 성공적으로 반환된 후 기록할 메모리에 이 레코드가 버퍼링될 수 있습니다.

[in, out] plsn

새로 추가된 레코드의 LSN에 대한 포인터입니다. 새로 추가된 레코드의 LSN이 필요하지 않은 경우 이 매개 변수는 NULL일 수 있습니다.

반환 값

메서드가 성공하면 S_OK를 반환하고, 그러지 않으면 HRESULT 오류 코드를 반환합니다.

설명

ILog에서 작성하거나 읽은 각 로그 레코드는 불투명한 데이터 BLOB입니다. 호출자의 편의를 위해 AppendRecord 를 사용하면 여러 BLOB을 단일 레코드로 연결할 수 있습니다. ILog 의 많은 구현은 메모리의 버퍼에 레코드를 복사하므로 호출자가 레코드 부분을 연결하기 위해 메모리를 할당하는 것은 비효율적일 수 있습니다. 그러나 레코드가 로그에 추가되면 ILog 는 레코드에서 개별 BLOB을 추출하는 메서드를 제공하지 않습니다. 호출자는 로그에서 읽은 레코드의 데이터를 구문 분석해야 합니다. ILog::ReadRecord를 참조하세요.

발신자에 대한 참고 사항

오류 반환 값은 마지막으로 강제 적용된 이후 로그에 추가된 모든 레코드가 디스크에 있다고 보장되지 않음을 나타냅니다. ILog 인터페이스는 디스크에 성공적으로 기록된 레코드를 확인하는 메서드를 제공하지 않습니다. 디스크에 성공적으로 기록된 레코드를 알아야 하는 경우 각 레코드에 대해 로그를 강제로 적용해야 합니다.

구현자에 대한 참고 사항

fForceNowTRUE인 경우 이 메서드에서 반환하기 전에 파일 버퍼(예: FlushFileBuffers 함수 사용)를 플러시하는 것이 좋습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 txlogpub.h

추가 정보

FlushFileBuffers

Ilog