Partager via


Insertion de lignes avec SQLBulkOperations

L’insertion de données avec SQLBulkOperations est similaire à la mise à jour des données avec SQLBulkOperations , car elle utilise des données provenant des mémoires tampons d’application liées.

Ainsi, chaque colonne de la nouvelle ligne a une valeur, toutes les colonnes liées avec une valeur de longueur/d’indicateur de SQL_COLUMN_IGNORE et que toutes les colonnes non liées doivent accepter des valeurs NULL ou avoir une valeur par défaut.

Pour insérer des lignes avec SQLBulkOperations, l’application effectue les opérations suivantes :

  1. Définit l’attribut d’instruction SQL_ATTR_ROW_ARRAY_SIZE sur le nombre de lignes à insérer et place les nouvelles valeurs de données dans les mémoires tampons d’application liées. Pour plus d’informations sur l’envoi de données longues avec SQLBulkOperations, consultez Données longues et SQLSetPos et SQLBulkOperations.

  2. Définit la valeur dans la mémoire tampon longueur/indicateur de chaque colonne si nécessaire. Il s’agit de la longueur d’octet des données ou des SQL_NTS pour les colonnes liées aux mémoires tampons de chaîne, de la longueur d’octet des données pour les colonnes liées aux mémoires tampons binaires et SQL_NULL_DATA pour toutes les colonnes à définir sur NULL. L’application définit la valeur dans la mémoire tampon de longueur/indicateur de ces colonnes à définir sur leur valeur par défaut (le cas échéant) ou NULL (si ce n’est pas le cas) sur SQL_COLUMN_IGNORE.

  3. Appelle SQLBulkOperations avec l’argument Operation défini sur SQL_ADD.

Une fois que SQLBulkOperations est retourné, la ligne actuelle n’est pas modifiée. Si la colonne signet (colonne 0) est liée, SQLBulkOperations retourne les signets des lignes insérées dans la mémoire tampon de l’ensemble de lignes lié à cette colonne.