CDaoRecordset::Edit
현재 레코드를 변경할 수 있도록 하려면이 멤버 함수를 호출 합니다.
virtual void Edit( );
설명
호출 된 편집 멤버 함수, 현재 레코드의 필드에 대 한 변경 내용을 복사 버퍼에 복사 됩니다.레코드를 필요에 따라 변경한 후 호출 업데이트 변경 내용을 저장 합니다.편집 레코드 집합의 데이터 멤버의 값을 저장 합니다.호출 하는 경우 편집를 호출 하 고 변경 편집 다시, 레코드의 값은 첫 번째 전에 이전에 복원 됩니다 편집 호출.
주의 |
---|
레코드를 편집 하 고 다음을 먼저 호출 하지 않고 다른 레코드로 이동 하는 작업을 수행 하는 경우 업데이트, 변경 내용이 경고 없이 손실 됩니다.또한 부모 데이터베이스 또는 레코드 집합을 닫으면 편집한 레코드를 경고 없이 삭제 됩니다. |
열을 Null (데이터 포함)를 만들어 업데이트 하려는 수 있습니다.이렇게 하려면 호출 SetFieldNull 매개 변수를 가진 TRUE 입니다; Null 필드를 표시 합니다 이 또한 열 업데이트 됩니다.필드 값은 변경 되지 않은 경우에 데이터 소스에 기록 하려면 호출 하려는 경우 SetFieldDirty 매개 변수를 가진 TRUE.이 값이 Null 필드가 있는 경우에 작동 합니다.
프레임 워크 표시 필드 데이터 멤버는 데이터 소스에서 레코드를 DAO 레코드 필드 교환 (DFX) 메커니즘에 의해 쓰여질 수 있도록 변경 되었습니다.일반적으로 필드의 값을 변경 설정 필드 변경 자동으로 거의 호출할 필요가 SetFieldDirty 자신 있지만 때로는 경우가 열 명시적으로 업데이트 되거나 삽입 필드 데이터 멤버의 값을 인지에 관계 없이 있는지 확인 합니다.DFX 메커니즘 사용을 또한 사용 의사 NULL.자세한 내용은 CDaoFieldExchange::m_nOperation.
이중 버퍼링 메커니즘을 사용 하지 않는 경우, 다음 필드의 값을 변경 자동으로 필드 불량으로 설정 하지 않습니다.이 경우, 커밋되지 않은 데이터 필드를 명시적으로 설정 해야 합니다.플래그에 포함 된 m_bCheckCacheForDirtyFields 이 필드를 자동 검사를 제어 합니다.
Pessimistically는 다중 사용자 환경에서 recordset 개체를 잠그면 레코드 시간에서 잠긴 남아 편집 업데이트가 완료 될 때까지 사용 됩니다.레코드 집합에 낙관적 잠금이 설정 되어 있으면 레코드가 잠겨 이며 방금 데이터베이스에서 업데이트 하기 전에 미리 레코드와 비교 합니다.호출 이후 레코드가 변경 된 경우 편집, 업데이트 작업이 실패 하 고 MFC 예외를 throw 합니다.잠금 모드를 변경할 수 있습니다 SetLockingMode.
[!참고]
낙관적 잠금 설치 가능한 ISAM 및 ODBC와 같은 외부 데이터베이스 형식을 항상 사용 됩니다.
현재 레코드를 호출한 후 현재 남아 편집.호출에 편집, 현재 레코드가 있어야 합니다.현재 레코드 또는 레코드 집합은 열린 테이블 형식 또는 다이너셋 형식 recordset 개체를 참조 하지 않는 경우 예외가 발생 합니다.호출 편집 발생은 CDaoException 아래와 같은 경우에 throw 됩니다.
현재 레코드가 됩니다.
데이터베이스 또는 레코드 집합은 읽기 전용입니다.
필드가 레코드에 업데이트할 수 있습니다.
데이터베이스 또는 레코드 집합에 대 한 단독 사용 다른 사용자가 열었습니다.
다른 사용자가 레코드를 포함 하는 페이지를 잠갔습니다.
데이터 소스가 트랜잭션을 지원할 경우 수는 편집 트랜잭션의 일부로 호출 합니다.참고 호출 해야 CDaoWorkspace::BeginTrans 호출 하기 전에 편집 및 레코드 집합을 연 후.수도 호출 한다고 CDaoWorkspace::CommitTrans 전화를 대신할 수 없습니다 업데이트 완료 하는 편집 작업.트랜잭션에 대 한 자세한 내용은 클래스를 참조 하십시오. CDaoWorkspace.
관련된 내용은 "AddNew 메서드", "편집 하는 방법", "삭제 하는 방법", "업데이트 방법" 및 DAO 도움말에서 "업데이트할 수 있는 속성" 항목을 참조 하십시오.
요구 사항
헤더: afxdao.h