Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Base de dados SQL no Microsoft Fabric
Adiciona uma linha ao conjunto de linhas de cópias em massa. Para exemplos, consulte Copiar Dados em Massa Usando IRowsetFastLoad (OLE DB) e Enviar Dados BLOB para SQL SERVER Usando IROWSETFASTLOAD e ISEQUENTIALSTREAM (OLE DB).
Sintaxe
HRESULT InsertRow(
HACCESSOR hAccessor,
void* pData);
Arguments
hAcessor[em]
O handle do acessor que define os dados da linha para cópia em massa. O acessório referenciado é um acessor de linha, que liga memória detida pelo consumidor contendo valores de dados.
pData[in]
Um apontador para a memória detida pelo consumidor contendo valores de dados. Para mais informações, consulte Estruturas DBBINDING.
Valores do código de retorno
S_OK
O método teve sucesso. Quaisquer valores de estado limitados para todas as colunas têm valor DBSTATUS_S_OK ou DBSTATUS_S_NULL.
E_FAIL
Ocorreu um erro. A informação de erro está disponível nas interfaces de erro do conjunto de linhas.
E_INVALIDARG
O argumento pData foi definido para um ponteiro NULL.
E_OUTOFMEMORY
O MSOLEDBSQL não conseguiu alocar memória suficiente para completar o pedido.
E_UNEXPECTED
O método foi chamado num conjunto de linhas de cópias em massa anteriormente invalidado pelo método IRowsetFastLoad::Commit .
DB_E_BADACCESSORHANDLE
O argumento hAccessor apresentado pelo consumidor era inválido.
DB_E_BADACCESSORTYPE
O acessório especificado não era um acessório de linha nem especificava memória detida pelo consumidor.
Observações
Um erro ao converter dados de consumidor para o tipo de dados SQL Server para uma coluna causa um retorno E_FAIL do Driver OLE DB para SQL Server. Os dados podem ser transmitidos para SQL Server em qualquer método InsertRow ou apenas no método Commit . A aplicação de consumo pode chamar o método InsertRow várias vezes com dados errados antes de receber notificação de que existe um erro de conversão de tipo de dado. Como o método Commit garante que todos os dados são corretamente especificados pelo consumidor, este pode usar o método Commit de forma adequada para validar os dados conforme necessário.
O controlador OLE DB para conjuntos de linhas de cópia em massa do SQL Server são apenas de escrita. O Driver OLE DB para SQL Server não expõe métodos que permitam a consulta do conjunto de linhas pelo consumidor. Para terminar o processamento, o consumidor pode libertar a sua referência na interface IRowsetFastLoad sem chamar o método Commit . Não existem funcionalidades para aceder a uma linha inserida pelo consumidor no conjunto de linhas e alterar os seus valores, ou removê-la individualmente do conjunto de linhas.
As linhas copiadas em massa são formatadas no servidor do SQL Server. O formato da linha é afetado por quaisquer opções que possam ter sido definidas para a ligação ou sessão, como ANSI_PADDING. Esta opção está ativada por defeito para qualquer ligação feita através do Driver OLE DB para SQL Server.