다음을 통해 공유


CRecordset::AddNew

테이블에 새 레코드를 추가 하기 위한 준비 합니다.

virtual void AddNew( );

설명

호출 해야는 Requery 멤버 함수를 새로 추가 된 레코드를 볼 수 있습니다.레코드의 필드는 처음에 Null입니다.(데이터베이스 용어로 Null "값이 없는 것"을 의미 하 고는 동일 하지 않습니다 NULL C++에서.) 작업을 완료 하 여 호출 해야는 업데이트 멤버 함수입니다.업데이트 데이터 원본에 변경 내용을 저장 합니다.

[!참고]

대량 행 페치를 구현한 경우 호출할 수 없습니다 AddNew.이 경우에 실패 한 어설션이 발생 합니다.하지만 클래스 CRecordset 메커니즘을 제공 하지 않습니다 대량 행의 데이터를 업데이트 하는 함수를 직접 ODBC API 함수를 사용 하 여 작성할 수 있습니다 SQLSetPos.대량 행 페칭 (fetching) 하는 방법에 대 한 자세한 내용은 레코드 집합: 레코드 페치 대량 (ODBC).

AddNew레코드 집합의 필드 데이터 멤버를 사용 하 여 빈 새 레코드를 준비 합니다.호출한 후 AddNew, 레코드 집합의 필드 데이터 멤버에 값을 설정 합니다.(호출할 필요가 있는 편집 멤버 함수가 용도. 사용 편집 기존 레코드에 대 한 합니다.) 이후에 호출 업데이트, 변경 된 필드 데이터 멤버에서 값 데이터 소스에 저장 됩니다.

주의 정보주의

호출 하기 전에 새 레코드를 스크롤 하는 경우 업데이트, 새 레코드 손실 되 고 경고가 발생 합니다.

데이터 소스가 트랜잭션을 지원할 경우 수를 AddNew 트랜잭션의 일부로 호출 합니다.트랜잭션에 대 한 자세한 내용은 클래스를 참조 하십시오. CDatabase.참고 호출 해야 CDatabase::BeginTrans 호출 하기 전에 AddNew.

[!참고]

다이너셋에 새 레코드를 마지막 레코드로 레코드 집합에 추가 됩니다.스냅샷에 추가한 레코드를 추가 되지 않습니다. 호출 해야 Requery 레코드 집합을 새로 고칠 수 있습니다.

호출할 수 없습니다 AddNew 레코드 집합에 대해 해당 열려 멤버 함수 호출 되지.A CDBException 를 호출 하면 throw 됩니다 AddNew 에 대 한 레코드를 추가할 수 없습니다.호출 하 여 레코드 집합을 업데이트할 수 있는지 여부를 확인할 수 있습니다 CanAppend.

에 대 한 자세한 내용은 다음 문서를 참조 하십시오: 레코드 집합: 레코드 집합 업데이트 방법 (ODBC), 레코드 집합: 추가, 업데이트 및 삭제 (ODBC), 및 트랜잭션 (ODBC).

예외

이 메서드가 형식의 예외를 throw 할 수 있습니다 CDBException *.

예제

참고 트랜잭션: 거래를 하 고 있는 레코드 집합 (ODBC에서).

요구 사항

헤더: afxdb.h

참고 항목

참조

CRecordset 클래스

계층 구조 차트

CRecordset::Edit

CRecordset::Delete

CRecordset::Update

CRecordset::Requery

CDatabase::BeginTrans

CDBException 클래스