Inserir linhas com SQLBulkOperations
A inserção de dados com SQLBulkOperations é similar à atualização de dados com SQLBulkOperations porque usa dados dos buffers de aplicativos associados.
Para que cada coluna na nova linha tenha um valor, todas as colunas associadas com um valor de comprimento/indicador de SQL_COLUMN_IGNORE e todas as colunas não associadas devem aceitar valores NULL ou ter um padrão.
Para inserir linhas com SQLBulkOperations, o aplicativo faz isto:
Define o atributo de instrução SQL_ATTR_ROW_ARRAY_SIZE como o número de linhas a serem inseridas e coloca os novos valores de dados nos buffers de aplicativos associados. Para obter informações sobre como enviar dados longos com SQLBulkOperations, confira Dados longos e SQLSetPos e SQLBulkOperations.
Define o valor no buffer de comprimento/indicador de cada coluna conforme o necessário. Esse é o comprimento de byte dos dados ou SQL_NTS para colunas associadas a buffers de cadeia de caracteres, o comprimento de byte dos dados para colunas associadas a buffers binários e SQL_NULL_DATA para todas as colunas a serem definidas como NULL. O aplicativo define o valor no buffer de comprimento/indicador das colunas que devem ser definidas como padrão (se houver) ou NULL (se não existir) como SQL_COLUMN_IGNORE.
Chama SQLBulkOperations com o argumento Operation definido como SQL_ADD.
Depois que SQLBulkOperations retorna, a linha atual permanece inalterada. Se a coluna do indicador (coluna 0) estiver associada, SQLBulkOperations retornará os indicadores das linhas inseridas no buffer do conjunto de linhas associado a essa coluna.