Dela via


Infoga rader med SQLBulkOperations

Infogning av data med SQLBulkOperations liknar uppdatering av data med SQLBulkOperations eftersom den använder data från de bundna programbuffertarna.

Så att varje kolumn i den nya raden har ett värde, måste alla bundna kolumner med ett längd-/indikatorvärde för SQL_COLUMN_IGNORE och alla obundna kolumner antingen acceptera NULL-värden eller ha ett standardvärde.

För att infoga rader med SQLBulkOperations gör programmet följande:

  1. Anger SQL_ATTR_ROW_ARRAY_SIZE-instruktionsattributet till antalet rader som ska infogas och placerar de nya datavärdena i de bundna programbuffertarna. Information om hur du skickar långa data med SQLBulkOperations finns i Long Data och SQLSetPos och SQLBulkOperations.

  2. Anger värdet i längden/indikatorbufferten för varje kolumn efter behov. Det här är bytelängden för data eller SQL_NTS för kolumner som är bundna till strängbuffertar, bytelängden för data för kolumner som är bundna till binära buffertar och SQL_NULL_DATA för kolumner som ska anges till NULL. Programmet anger värdet i längden/indikatorbufferten för de kolumner som ska anges till standardvärdet (om det finns någon) eller NULL (om det inte finns) till SQL_COLUMN_IGNORE.

  3. Anropar SQLBulkOperations med argumentet Operation inställt på SQL_ADD.

Efter att SQLBulkOperations har returnerat förblir den aktuella raden oförändrad. Om bokmärkeskolumnen (kolumn 0) är bunden returnerar SQLBulkOperations bokmärkena för de infogade raderna i raduppsättningsbufferten som är bunden till den kolumnen.