Compartilhar via


Como copiar dados em massa usando IRowsetFastLoad (OLE DB)

O consumidor notifica o SQLOLEDB de sua necessidade de cópia em massa ao definir a propriedade SSPROP_ENABLEFASTLOAD específica do provedor SQLOLEDB como VARIANT_TRUE. Com a propriedade definida na fonte de dados, o consumidor cria uma sessão SQLOLEDB. A nova sessão permite o acesso do consumidor a IRowsetFastLoad.

Está disponível um exemplo completo que ilustra o uso de IRowsetFastLoad para cópia em massa dos registros em uma tabela. Nesse exemplo, são adicionados 10 registros à tabela IRFLTable. Você precisa criar a tabela IRFLTable no banco de dados.

O código de exemplo completo está no arquivo BulkCopyRecords.cpp. Você pode baixar um arquivo que contém o exemplo da página de Downloads do SQL Server no MSDN.

Esse exemplo foi desenvolvido com o Microsoft Visual C++ 2005.

Observação sobre segurançaObservação sobre segurança

Quando possível, use a Autenticação do Windows. Se a Autenticação do Windows não estiver disponível, solicite aos usuários que digitem suas credenciais em tempo de execução. Evite armazenar as credenciais em um arquivo. Se for necessário manter as credenciais, criptografe-as com a API de criptografia Win32.

Para copiar dados em massa para uma tabela do SQL Server

  1. Estabeleça uma conexão com a fonte de dados.

  2. Defina a propriedade de fonte de dados SSPROP_ENABLEFASTLOAD específica do provedor SQLOLEDB como VARIANT_TRUE. Com essa propriedade definida como VARIANT_TRUE, a sessão recém-criada permite o acesso do consumidor a IRowsetFastLoad.

  3. Crie uma sessão solicitando a interface IOpenRowset.

  4. Chame IOpenRowset::OpenRowset para abrir um conjunto de linhas que inclui todas as linhas da tabela (na qual os dados serão copiados por meio da operação de cópia em massa).

  5. Faça as associações necessárias e crie um acessador usando IAccessor::CreateAccessor.

  6. Configure o buffer de memória do qual os dados serão copiados para a tabela.

  7. Chame IRowsetFastLoad::InsertRow para copiar os dados em massa para a tabela.