IRowsetFastLoad::InsertRow (OLE DB)
Adiciona uma linha ao conjunto de linhas de cópia em massa. Para obter exemplos, consulte Copiar dados em massa usando IRowsetFastLoad (OLE DB) e Enviar dados BLOB ao 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 de 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
SQLNCLI11 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 provedor OLE DB do SQL Server Native Client. 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 provedor OLE DB do SQL Server Native Client são somente gravação. O provedor OLE DB do SQL Server Native Client 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 provedor OLE DB do SQL Server Native Client.