다음을 통해 공유


IRowsetFastLoad::InsertRow(OLE DB)

대량 복사 행 집합에 행을 추가합니다.

구문

HRESULT InsertRow(
      HACCESSOR hAccessor,
      void* pData);

인수

  • hAccessor[in]
    대량 복사에 대한 행 데이터를 정의하는 접근자의 핸들입니다. 참조되는 접근자는 행 접근자로, 데이터 값이 포함된 소비자가 소유한 메모리를 바인딩합니다.

  • pData[in]
    데이터 값이 포함된 소비자가 소유한 메모리에 대한 포인터입니다. 자세한 내용은 DBBINDING 구조(DBBINDING Structures)를 참조하십시오.

반환 코드 값

  • S_OK
    메서드가 성공했습니다. 모든 열의 바인딩된 상태 값은 DBSTATUS_S_OK 또는 DBSTATUS_S_NULL입니다.

  • E_FAIL
    오류가 발생했습니다. 행 집합의 오류 인터페이스에서 오류 정보를 볼 수 있습니다.

  • E_INVALIDARG
    pData 인수가 NULL 포인터로 설정되었습니다.

  • E_OUTOFMEMORY
    SQLNCLI10에서 요청을 완료할 충분한 메모리를 할당할 수 없습니다.

  • E_UNEXPECTED
    이전에 IRowsetFastLoad::Commit 메서드에 의해 무효화된 대량 복사 행 집합에서 메서드가 호출되었습니다.

  • DB_E_BADACCESSORHANDLE
    소비자가 제공한 hAccessor 인수가 잘못되었습니다.

  • DB_E_BADACCESSORTYPE
    지정된 접근자는 행 접근자가 아니거나, 소비자가 소유한 메모리를 지정하지 않았습니다.

주의

소비자 데이터를 열의 SQL Server 데이터 형식으로 변환하는 동안 오류가 발생하면 SQL Server Native Client OLE DB 공급자에서 E_FAIL이 반환됩니다. 모든 InsertRow 메서드나 Commit 메서드에서만 데이터를 SQL Server로 전송할 수 있습니다. 소비자 응용 프로그램은 데이터 형식 변환 오류가 있다는 알림을 받기 전에 오류가 있는 데이터로 InsertRow 메서드를 여러 번 호출할 수 있습니다. Commit 메서드에서 소비자가 모든 데이터를 올바르게 지정했는지 확인하기 때문에 소비자는 필요에 따라 Commit 메서드를 적절하게 사용하여 데이터의 유효성을 검사할 수 있습니다.

SQL Server Native Client OLE DB 공급자 대량 복사 행 집합은 쓰기 전용입니다. SQL Server Native Client OLE DB 공급자는 소비자의 행 집합 쿼리를 허용하는 메서드를 노출하지 않습니다. 처리를 종료하기 위해 소비자는 Commit 메서드를 호출하지 않고 IRowsetFastLoad 인터페이스에서 해당 참조를 해제할 수 있습니다. 행 집합에 있는 소비자가 삽입한 행에 액세스하여 해당 값을 변경하거나 행 집합에서 개별적으로 행을 제거하는 기능은 없습니다.

대량 복사된 행은 서버에서 SQL Server에 맞게 형식이 지정됩니다. 행 형식은 연결이나 세션에 대해 설정된 모든 옵션(예: ANSI_PADDING)의 영향을 받습니다. 이 옵션은 SQL Server Native Client OLE DB 공급자를 통해 설정된 모든 연결에 대해 기본적으로 설정됩니다.

참고 항목

관련 자료