Compartir a través de


Insertar filas con SQLBulkOperations

Insertar datos con SQLBulkOperations es similar a actualizar datos con SQLBulkOperations porque usa datos de los búferes de aplicación enlazados.

Para que cada columna de la nueva fila tenga un valor, todas las columnas enlazadas con un valor de longitud o indicador de SQL_COLUMN_IGNORE y todas las columnas sin enlazar deben aceptar valores NULL o tener un valor predeterminado.

Para insertar filas con SQLBulkOperations, la aplicación hace lo siguiente:

  1. Establece el atributo de instrucción SQL_ATTR_ROW_ARRAY_SIZE en el número de filas que se van a insertar y coloca los nuevos valores de datos en los búferes de aplicación enlazados. Para obtener información sobre cómo enviar datos largos con SQLBulkOperations, vea Datos largos y SQLSetPos y SQLBulkOperations.

  2. Establece el valor en el búfer de longitud o indicador de cada columna según sea necesario. Esta es la longitud de bytes de los datos o SQL_NTS para las columnas enlazadas a búferes de cadena, la longitud de bytes de los datos de las columnas enlazadas a búferes binarios y SQL_NULL_DATA para que las columnas se establezcan en NULL. La aplicación establece el valor en el búfer de longitud o indicador de las columnas que se van a establecer en su valor predeterminado (si existe uno) o NULL (si no existe) en SQL_COLUMN_IGNORE.

  3. Llama a SQLBulkOperations con el argumento Operation establecido en SQL_ADD.

Después de que se devuelva SQLBulkOperations, la fila actual no cambia. Si la columna de marcador (columna 0) está enlazada, SQLBulkOperations devuelve los marcadores de las filas insertadas en el búfer del conjunto de filas enlazado a esa columna.