CRowset::Insert
만들고 데이터 접근자를 사용 하 여 새 행을 초기화 합니다.
HRESULT Insert(
int nAccessor = 0,
bool bGetHRow = false
) throw( );
매개 변수
nAccessor
[in] 데이터를 삽입 하는 데 사용 하는 접근자의 개수입니다.bGetHRow
[in] 삽입 된 행에 대 한 핸들 검색 되는지 여부를 나타냅니다.
반환 값
표준 HRESULT.
설명
이 메서드는 선택적 인터페이스 필요 IRowsetChange, 어떤 수도 지원 되지 않습니다 모든 업체에서; 이 경우 인지, 메서드 반환 인터페이스.또한 설정 해야 DBPROP_IRowsetChange 에 VARIANT_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