Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Important
Den här funktionen tas bort i en framtida version av Windows. Undvik att använda den här funktionen i nytt utvecklingsarbete och planera att ändra program som för närvarande använder den här funktionen. Microsoft rekommenderar att du använder drivrutinens markörfunktioner.
Efter att en applikation har hämtat ett datablock med SQLFetchScroll kan den uppdatera eller ta bort datan i blocket. För att utföra en positionerad uppdatering eller borttagning gör applikationen:
Anropar SQLSetPos för att placera markören på raden som ska uppdateras eller tas bort.
Konstruerar en positionerad uppdaterings- eller borttagningssats med följande syntax:
UPDATE Tabellnamn
SET Kolumnidentifierare= {uttryck | NULL}
[,kolumnidentifierare]= {uttryck | NULL}]
DÄR STRÖM AVmarkör-namn
DELETE FRÅNtabellnamnVAR CURRENT AVmarkörnamn
Det enklaste sättet att konstruera SET klausulen i en positionerad uppdateringssats är att använda parametermarkörer för varje kolumn som ska uppdateras och använda SQLBindParameter för att binda dessa till raduppsättningsbuffertarna för raden som ska uppdateras. I detta fall kommer C-datatypen för parametern att vara densamma som C-datatypen för raduppsättningsbufferten.
Uppdaterar raduppsättningsbuffertarna för den aktuella raden om den kommer att köra en positionerad uppdateringssats. Efter att framgångsrikt ha kört en positionerad uppdateringssats kopierar markörbiblioteket värdena från varje kolumn i den aktuella raden till sin cache.
Caution
Om applikationen inte korrekt uppdaterar radsetsbuffertarna innan en positionerad uppdateringssats exekveras, kommer datan i cachen att vara felaktig efter att satsen exekverats.
Utför positionerade uppdaterings- eller delete-satsen med en annan sats än den som är kopplad till markören.
Caution
WHERE-klausulen som konstrueras av markörbiblioteket för att identifiera den aktuella raden kan misslyckas med att identifiera några rader, identifiera en annan rad eller identifiera mer än en rad. För mer information, se Constructing Searched Statements.
Alla positionerade uppdaterings- och borttagningssatser kräver ett pekarnamn. För att ange markörens namn anropar en applikation SQLSetCursorName innan markören öppnas. För att använda markörnamnet som genereras av drivrutinen anropar ett program SQLGetCursorName efter att markören öppnats.
Efter att markörbiblioteket utfört en positionerad uppdaterings- eller borttagningssats, innehåller statusarrayen, raduppsättningsbuffertar och cache som underhålls av markörbiblioteket de värden som visas i följande tabell.
| Påstående som används | Värde i radstatusarray | Värden i Rowset-buffertar |
Värden i Cachebuffertar |
|---|---|---|---|
| Positioneringsuppdatering | SQL_ROW_UPDATED | Nya värderingar[1] | Nya värderingar[1] |
| Positionerad borttagning | SQL_ROW_DELETED | Gamla värderingar | Gamla värderingar |
[1] Applikationen måste uppdatera värdena i raduppsättningsbuffertarna innan positioneringsuppdateringssatsen exekveras; Efter att positionerade uppdateringssatsen har exekverats kopierar markörbiblioteket värdena i raduppsättningsbuffertarna till sin cache.