Compartilhar via


IRowsetFastLoad::InsertRow (OLE DB)

Adiciona uma linha ao conjunto de linhas de cópia em massa.

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
    SQLNCLI10 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.

Consulte também

Outros recursos