Dela via


Uppdatera data med SQLBulkOperations

Program kan utföra massuppdaterings-, borttagnings-, hämtnings- eller infogningsåtgärder i den underliggande tabellen i datakällan med ett anrop till SQLBulkOperations. Att anropa SQLBulkOperations är ett praktiskt alternativ till att konstruera och köra en SQL-instruktion. Det gör att en ODBC-drivrutin stöder positionerade uppdateringar även om datakällan inte stöder positionerade SQL-instruktioner. Det är en del av paradigmet för att uppnå fullständig databasåtkomst med hjälp av funktionsanrop.

SQLBulkOperations fungerar på den aktuella raduppsättningen och kan endast användas efter ett anrop till SQLFetch eller SQLFetchScroll. Programmet anger de rader som ska uppdateras, tas bort eller uppdateras genom att deras bokmärken cachelagras. Drivrutinen hämtar nya data för rader som ska uppdateras, eller de nya data som ska infogas i den underliggande tabellen, från raduppsättningsbuffertarna.

Den raduppsättningsstorlek som ska användas av SQLBulkOperations anges av ett anrop till SQLSetStmtAttr med attributetSQL_ATTR_ROW_ARRAY_SIZE . Till skillnad från SQLSetPos, som endast använder en ny raduppsättningsstorlek efter ett anrop till SQLFetch eller SQLFetchScroll, använder SQLBulkOperations den nya raduppsättningsstorleken efter anropet till SQLSetStmtAttr.

Eftersom de flesta interaktioner med relationsdatabaser sker via SQL stöds inte SQLBulkOperations i stor utsträckning. En drivrutin kan dock enkelt emulera den genom att konstruera och köra en UPDATE-, DELETE- eller INSERT-instruktion.

För att avgöra vilka åtgärder SQLBulkOperation stöder anropar ett program SQLGetInfo med informationsalternativet SQL_DYNAMIC_CURSOR_ATTRIBUTES1, SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1, SQL_KEYSET_CURSOR_ATTRIBUTES1 eller SQL_STATIC_CURSOR_ATTRIBUTES1 (beroende på markörens typ).

Det här avsnittet innehåller följande avsnitt.