Partilhar via


IRowsetFastLoad::InsertRow (OLE DB)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSistema de Plataforma de Análise (PDW)Base de dados SQL no Microsoft Fabric

Baixar driver OLE DB

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.

Ver também

IRowsetFastLoad (OLE DB)