CRecordset::Delete
게시: 2016년 4월
현재 레코드를 삭제합니다.
구문
virtual void Delete( );
설명
성공적으로 삭제 한 후, 레코드 집합의 필드 데이터 멤버는 Null 값으로 설정 하 고 하나를 명시적으로 호출 해야는 이동 삭제 된 레코드를 이동 하려면 함수입니다. 삭제 된 레코드를 이동 하면 다시 수 없습니다. 데이터 소스가 트랜잭션을 지원할 경우 수는 삭제 트랜잭션의 일부로 호출 합니다. 자세한 내용은 트랜잭션 (ODBC).
참고
대량 행 페치를 구현한 경우 호출할 수 없습니다 삭제.이 경우에 실패 한 어설션이 발생 합니다.하지만 클래스 CRecordset 메커니즘을 제공 하지 않습니다 대량 행의 데이터를 업데이트 하는 함수를 직접 ODBC API 함수를 사용 하 여 작성할 수 있습니다 SQLSetPos.대량 행 페칭 (fetching) 하는 방법에 대 한 자세한 내용은 레코드 집합: 레코드 페치 대량 (ODBC).
경고
레코드 집합을 업데이트할 수 있어야 하며 유효한 레코드는 레코드 집합에서 현재 호출 하면 삭제. 그렇지 않으면 오류가 발생합니다.예를 들어, 레코드를 삭제 하지만 호출 하기 전에 새 레코드를 스크롤하지 않습니다 삭제 다시 삭제 throw 된 CDBException.
달리 AddNew 및 편집, 호출을 삭제 를 호출 하 여 표시 되지 않는 업데이트. 경우는 삭제 호출이 실패, 변경 되지 않은 멤버는 왼쪽 필드 데이터입니다.
예외
Exception
Condition
이 메서드가 형식의 예외를 throw 할 수 있습니다 CDBException *.
예제
이 이때 함수의 프레임에서 만들어진 레코드 집합을 보여 줍니다. 존재를 전제로 m_dbCust, 형식의 멤버 변수 CDatabase 이미 데이터 원본에 연결 합니다.
// Create a derived CRecordset object
CCustomer rsCustSet(&m_dbCust);
rsCustSet.Open();
if(rsCustSet.IsEOF() || !rsCustSet.CanUpdate() ||
!rsCustSet.CanTransact())
{
return;
}
m_dbCust.BeginTrans();
// Perhaps scroll to a new record...
// Delete the current record
rsCustSet.Delete();
// Finished commands for this transaction
if(IDYES == AfxMessageBox(_T("Commit transaction?"), MB_YESNO))
m_dbCust.CommitTrans();
else // User changed mind
m_dbCust.Rollback();
요구 사항
헤더: afxdb.h
참고 항목
CRecordset Class
계층 구조 차트
CDatabase::BeginTrans
CDatabase::CommitTrans
CDatabase::Rollback
CDBException Class