Compartilhar via


IRowsetFastLoad::InsertRow (OLE DB)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Analytics Platform System (PDW)

Baixar o driver do OLE DB

Adiciona uma linha ao conjunto de linhas de cópia em massa. Para obter exemplos, confira Copiar Dados em massa usando IRowsetFastLoad (OLE DB) e Enviar dados de blob para o SQL Server usando IROWSETFASTLOAD e ISEQUENTIALSTREAM (OLE DB).

Sintaxe

  
HRESULT InsertRow(  
      HACCESSOR hAccessor,  
      void* pData);  

Argumentos

hAccessor[in]
O identificador do acessador que define os dados de linha para cópia em massa. O acessador referenciado é um acessador de linha, que associa a memória de propriedade do consumidor contendo valores de dados.

pData[in]
Um ponteiro para a memória de propriedade do consumidor que contém valores de dados. Para obter mais informações, consulte Estruturas DBBINDING.

Valores do código de retorno

S_OK
O método foi bem-sucedido. Todos os valores de status associados para todas as colunas têm o valor DBSTATUS_S_OK ou DBSTATUS_S_NULL.

E_FAIL
Ocorreu um erro. As informações do erro estão disponíveis nas interfaces de erro do conjunto de linhas.

E_INVALIDARG
O argumento pData foi definido como um ponteiro NULL.

E_OUTOFMEMORY
MSOLEDBSQL não pôde alocar memória suficiente para concluir a solicitação.

E_UNEXPECTED
O método foi chamado em um conjunto de linhas de cópia em massa invalidado anteriormente pelo método IRowsetFastLoad::Commit.

DB_E_BADACCESSORHANDLE
O argumento hAccessor fornecido pelo consumidor era inválido.

DB_E_BADACCESSORTYPE
O acessador especificado não era um acessador de linha ou não especificou a memória de propriedade do consumidor.

Comentários

Um erro ao converter dados do consumidor no tipo de dados do SQL Server para uma coluna gera um retorno E_FAIL do OLE DB Driver for SQL Server. Os dados podem ser transmitidos para o SQL Server em qualquer método InsertRow ou apenas no método Commit. O aplicativo do consumidor pode chamar o método InsertRow muitas vezes com dados incorretos antes ser avisado de que há um erro de conversão de tipo de dados. Como o método Commit assegura que todos os dados sejam especificados corretamente pelo consumidor, ele pode usar o método Commit apropriadamente para validar os dados, conforme necessário.

Os conjuntos de linhas de cópia em massa do Driver do OLE DB para SQL Server são somente gravação. O Driver do OLE DB para SQL Server não expõe nenhum método que permite consultas do consumidor do conjunto de linhas. Para encerrar o processamento, o consumidor pode liberar sua referência na interface IRowsetFastLoad sem chamar o método Commit. Não há nenhum recurso para acessar uma linha inserida pelo consumidor no conjunto de linhas e alterar seus valores ou para removê-la individualmente do conjunto de linhas.

As linhas copiadas em massa são formatadas no servidor para o SQL Server. O formato de linha é afetado por todas as opções que possam ter sido definidas para a conexão ou sessão, como ANSI_PADDING. Essa opção é ativada por padrão para qualquer conexão feita por meio do Driver do OLE DB para SQL Server.

Consulte Também

IRowsetFastLoad (OLE DB)