CRecordset::Delete

가상 void 삭제 ( );
던져 ( CDBException );

주의

현재 레코드를 삭제 하려면이 멤버 함수를 호출 합니다. 성공적으로 삭제 후 레코드 집합의 필드 데이터 멤버를 Null 값으로 설정 하 고 명시적으로 삭제 된 레코드에서 이동 하기 위해 이동 기능 중 하나를 호출 해야 합니다. 삭제 된 레코드에서 이동 하면 그것은 그것을 반환할 수 있습니다. 데이터 소스에서 트랜잭션을 지원를 하는 경우는 삭제 호출 트랜잭션의 일부가 만들 수 있습니다. 자세한 내용은 다음 웹 사이트를 참조 하십시오. 문서 Visual c + + 프로그래머 가이드 에서 트랜잭션 (ODBC)。

메모nbsp;??대량 행 페치를 구현한 경우에 삭제를 호출할 수 없습니다. 이 실패 한 어설션이 발생 합니다. CRecordset 클래스는 대량 행의 데이터를 업데이트 하기 위한 메커니즘을 제공 하지 않습니다, 비록 SQLSetPosODBC API 함수를 사용 하 여 직접 함수를 작성할 수 있습니다. 이 작업을 수행 하는 방법의 예는 샘플을 참조 하십시오. DBFETCH. 대량 행 페칭에 대 한 자세한 내용은 다음 웹 사이트를 참조 하십시오. 문서 레코드 집합: 레코드 페치 대량 (ODBC) Visual c + + 프로그래머 가이드(&N)。

주의nbsp;??레코드 집합을 업데이트할 수 있어야 합니다 그리고 있어야 유효한 레코드를 레코드 집합에서 현재 삭제; 호출 하는 경우 그렇지 않으면 오류가 발생합니다. 예를 들어, 레코드 삭제 하더라도 호출 하기 전에 삭제 다시 새 레코드로 스크롤되지 않습니다 CDBException 던졌습니다 삭제(&N)。

AddNew 와 달리 편집, 삭제 를 호출 하지 Update를 호출 하 여 다음. 필드 데이터 멤버는 왼쪽 그대로 삭제 호출이 실패 하는 경우。

예제

이 예제에서는 함수를 프레임에 만든 recordset. 이 예제에서는 가정의 존재 m_dbCust , 데이터 소스에 이미 연결 된 CDatabase 형식의 멤버 변수。

/ / 파생된 CRecordset 개체 만들기
CCustSet rsCustSet (amp; m_dbCust);
rsCustSet.Open ();

경우 (rsCustSet.IsEOF () | |! rsCustSet.CanUpdate () | |
 ?? ! rsCustSet.CanTransact ())
 ? 반환;

경우 (! m_dbCust.BeginTrans ())
{
 ? / / 실패를 처리 뭔가
}
다른
{
 ? / / 아마도 새 레코드로 스크롤...
 ? / / 현재 레코드 삭제
 ? rsCustSet.Delete ();
 ? // ...

/ /이 트랜잭션에 대 한 명령을 완료
 ? 만약 (< 사용자 확인 트랜잭션 >)
 ???? m_dbCust.CommitTrans ();
 ? 다른 / / 사용자 변경 마음
 ???? m_dbCust.Rollback ();
}
//

CRecordset 개요 |nbsp; 클래스 멤버 (ko) | 계층 구조 차트(&N)

참고 항목nbsp;Database::BeginTrans, CDatabase::CommitTrans, CDatabase::Rollback, CDBException(&N)

Index