Partilhar via


Inserindo linhas com SQLBulkOperations

Inserir dados com SQLBulkOperations é semelhante a atualizar dados com SQLBulkOperations porque utiliza dados dos buffers de aplicação limitados.

Para que cada coluna na nova linha tenha um valor, todas as colunas vinculadas com um comprimento/valor indicador de SQL_COLUMN_IGNORE e todas as colunas não vinculadas devem aceitar valores NULL ou ter um padrão.

Para inserir linhas com SQLBulkOperations, a aplicação faz o seguinte:

  1. Define o atributo SQL_ATTR_ROW_ARRAY_SIZE da instrução para o número de linhas que serão inseridas e coloca os novos valores de dados nos buffers de aplicação vinculados. Para informações sobre como enviar dados longos com SQLBulkOperations, consulte Long Data e SQLSetPos e SQLBulkOperations.

  2. Define o valor no buffer de comprimento/indicador de cada coluna conforme necessário. Este é o comprimento em bytes dos dados ou SQL_NTS para colunas ligadas a buffers de string, o comprimento em bytes dos dados para colunas ligadas a buffers binários, e SQL_NULL_DATA para quaisquer colunas que sejam definidas como NULL. A aplicação define o valor no buffer de comprimento/indicador das colunas que devem ser definidas para o seu valor padrão (se existir) ou "NULL" (se não existir) como SQL_COLUMN_IGNORE.

  3. Chama SQLBulkOperations com o argumento Operation definido para SQL_ADD.

Após o retorno do SQLBulkOperations , a linha atual mantém-se inalterada. Se a coluna de marcadores (coluna 0) estiver limitada, o SQLBulkOperations devolve os marcadores das linhas inseridas no buffer de linhas vinculado a essa coluna.