다음을 통해 공유


CRowset::Insert

만들고 데이터 접근자를 사용 하 여 새 행을 초기화 합니다.

HRESULT Insert( 
   int nAccessor = 0, 
   bool bGetHRow = false  
) throw( );

매개 변수

  • nAccessor
    [in] 데이터를 삽입 하는 데 사용 하는 접근자의 개수입니다.

  • bGetHRow
    [in] 삽입 된 행에 대 한 핸들 검색 되는지 여부를 나타냅니다.

반환 값

표준 HRESULT.

설명

이 메서드는 선택적 인터페이스 필요 IRowsetChange, 어떤 수도 지원 되지 않습니다 모든 업체에서; 이 경우 인지, 메서드 반환 인터페이스.또한 설정 해야 DBPROP_IRowsetChangeVARIANT_TRUE 호출 하기 전에 열기 테이블 또는 행 집합을 포함 하는 명령.

하나 이상의 열이 없는 경우 쓰기 가능한 삽입이 실패할 수 있습니다.이를 방지하려면 커서 맵을 수정하십시오.

예제

다음 예제에서는 행 집합을 통해 데이터 소스에 액세스 하 고 테이블에서 해당 행 집합을 사용 하 여 문자열을 삽입 하는 방법을 보여 줍니다.

먼저 프로젝트에 새 ATL 개체를 삽입 하 여 테이블 클래스를 만듭니다.예를 들어, 프로젝트 작업 영역 창에서 마우스 오른쪽 단추로 클릭 하 고 선택 새 ATL 개체.데이터 액세스 범주, 소비자.소비자 개체 형식 만들기 테이블.(선택 테이블 ; 테이블에서 직접 행 집합을 만듭니다. 선택 명령 을 통해 SQL 명령은 행 집합을 만듭니다.) 통해 해당 데이터 원본에 액세스 하는 테이블을 지정 하는 데이터 원본을 선택 합니다.소비자 개체를 호출 하면 CCustomerTable, 다음 삽입 코드를 다음과 같이 구현할 수:

// Access the rowset using the wizard-generated class, CCustomerTable
CCustomerTable rs;           // Your CTable-derived class

// Insert a customer
// Note that for fixed-length fields such as billing ID it isn't necessary
// to set the length
rs.m_BillingID = 5002;
rs.m_dwBillingIDStatus = DBSTATUS_S_OK;

_tcscpy_s(rs.m_ContactFirstName, sizeof(rs.m_ContactFirstName) / sizeof(TCHAR), 
   _T("Malcolm"));
rs.m_dwContactFirstNameLength = 7;
rs.m_dwContactFirstNameStatus = DBSTATUS_S_OK;

_tcscpy_s(rs.m_L_Name, sizeof(rs.m_L_Name) / sizeof(TCHAR), _T("Reynolds"));
rs.m_dwL_NameLength = 8;
rs.m_dwContactFirstNameStatus = DBSTATUS_S_OK;

rs.m_CustomerID = 2005;
rs.m_dwCustomerIDStatus = DBSTATUS_S_OK;

_tcscpy_s(rs.m_PostalCode, sizeof(rs.m_PostalCode) / sizeof(TCHAR), 
   _T("34213-4444"));
rs.m_dwPostalCodeLength = 10;
rs.m_dwPostalCodeStatus = DBSTATUS_S_OK;

HRESULT hr = rs.Insert();
if (FAILED(hr))
{
   ATLTRACE(_T("Insert failed: 0x%X\n"), hr);
}

요구 사항

헤더: atldbcli.h

참고 항목

참조

CRowset 클래스