다음을 통해 공유


방법: IRowsetFastLoad를 통한 데이터 대량 복사(OLE DB)

소비자는 SQLOLEDB 공급자별 속성 SSPROP_ENABLEFASTLOAD를 VARIANT_TRUE로 설정하여 대량 복사가 필요하다는 것을 SQLOLEDB에 알립니다. 데이터 원본의 속성 집합을 사용하여 소비자는 SQLOLEDB 세션을 만듭니다. 새 세션을 사용하여 소비자는 IRowsetFastLoad에 액세스할 수 있습니다.

IRowsetFastLoad를 사용하여 레코드를 테이블에 대량 복사하는 방법을 보여 주는 전체 예제가 있습니다. 이 예제에서는 10개의 레코드를 IRFLTable 테이블에 추가합니다. 이를 위해 데이터베이스에 IRFLTable 테이블을 만들어야 합니다.

전체 예제 코드는 BulkCopyRecords.cpp 파일에 있습니다. MSDN의 SQL Server 다운로드(SQL Server Downloads) 페이지에서 예제가 포함된 보관 파일을 다운로드할 수 있습니다.

이 예제는 Microsoft Visual C++ 2005를 사용하여 개발되었습니다.

보안 정보보안 정보

가능하면 Windows 인증을 사용하십시오. Windows 인증을 사용할 수 없으면 런타임에 사용자에게 자격 증명을 입력하라는 메시지를 표시합니다. 자격 증명은 파일에 저장하지 않는 것이 좋습니다. 자격 증명을 유지하려면 Win32 crypto API를 사용하여 자격 증명을 암호화해야 합니다.

데이터를 SQL Server 테이블로 대량 복사하려면

  1. 데이터 원본에 대한 연결을 설정합니다.

  2. SQLOLEDB 공급자별 데이터 원본 속성 SSPROP_ENABLEFASTLOAD를 VARIANT_TRUE로 설정합니다. 이 속성을 VARIANT_TRUE로 설정하면 새로 생성되는 세션에서 소비자가 IRowsetFastLoad에 액세스할 수 있습니다.

  3. IOpenRowset 인터페이스를 요청하는 세션을 만듭니다.

  4. IOpenRowset::OpenRowset을 호출하여 대량 복사 작업을 통해 데이터를 복사할 테이블의 모든 행이 포함된 행 집합을 엽니다.

  5. 필요한 바인딩을 수행하고 IAccessor::CreateAccessor를 사용하여 접근자를 만듭니다.

  6. 테이블에 복사할 데이터를 가져올 메모리 버퍼를 설정합니다.

  7. IRowsetFastLoad::InsertRow를 호출하여 데이터를 테이블로 대량 복사합니다.