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