Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Important
Deze functie wordt verwijderd in een toekomstige versie van Windows. Vermijd het gebruik van deze functie in nieuwe ontwikkelwerkzaamheden en plan om toepassingen te wijzigen die deze functie momenteel gebruiken. Microsoft raadt aan de cursorfunctionaliteit van het stuurprogramma te gebruiken.
Nadat een applicatie een datablok met SQLFetchScroll heeft opgehaald, kan het de gegevens in het blok bijwerken of verwijderen. Om een gepositioneerde update of verwijdering uit te voeren, volgt de applicatie:
Roept SQLSetPos aan om de cursor op de rij te positioneren die bijgewerkt of verwijderd moet worden.
Bouwt een gepositioneerde update- of delete-instructie met de volgende syntaxis:
UPDATE Tabelnaam
SET kolomidentificatie= {expressie | NULL}
[,kolomidentificatie= {expressie | NULL}]
WAAR STROOM VANcursornaam
DELETE VANtabelnaamWAAR STROOM VANcursornaam
De eenvoudigste manier om de SET clausule in een positioned update-instructie te construeren is door parametermarkers te gebruiken voor elke kolom die wordt bijgewerkt en SQLBindParameter te gebruiken om deze te binden aan de rowsetbuffers voor de te updaten rij. In dit geval zal het C-datatype van de parameter hetzelfde zijn als het C-datatype van de rowset-buffer.
Updates van de rijsetbuffers voor de huidige rij als het een positioned update-instructie uitvoert. Na het succesvol uitvoeren van een positioned update-instructie kopieert de cursorbibliotheek de waarden van elke kolom in de huidige rij naar zijn cache.
Caution
Als de applicatie de rowset-buffers niet correct bijwerkt voordat een positioned update-instructie wordt uitgevoerd, zullen de gegevens in de cache onjuist zijn nadat de instructie is uitgevoerd.
Voert de gepositioneerde update- of delete-instructie uit met een andere instructie dan de instructie die aan de cursor is gekoppeld.
Caution
De WHERE-clausule die door de cursorbibliotheek wordt geconstrueerd om de huidige rij te identificeren, kan falen in het identificeren van rijen, een andere rij of meer dan één rij identificeren. Voor meer informatie, zie Constructing Searched Statements.
Alle gepositioneerde update- en delete-instructies vereisen een cursornaam. Om de cursornaam op te geven, roept een applicatie SQLSetCursorName aan voordat de cursor wordt geopend. Om de cursornaam te gebruiken die door de driver wordt gegenereerd, roept een applicatie SQLGetCursorName aan nadat de cursor is geopend.
Nadat de cursorbibliotheek een positioned update- of delete-instructie heeft uitgevoerd, bevatten de statusarray, rowsetbuffers en cache die door de cursorbibliotheek worden onderhouden de waarden die in de volgende tabel worden weergegeven.
| Gebruikte verklaring | Waarde in de rijstatusarray | Waarden in Rowset-buffers |
Waarden in Cachebuffers |
|---|---|---|---|
| Positie-update | SQL_ROW_UPDATED | Nieuwe waarden[1] | Nieuwe waarden[1] |
| Gepositioneerde verwijdering | SQL_ROW_DELETED | Oude waarden | Oude waarden |
[1] De applicatie moet de waarden in de rowset-buffers bijwerken voordat de positioned update-instructie wordt uitgevoerd; Na het uitvoeren van de positioned update-instructie kopieert de cursorbibliotheek de waarden in de rowset-buffers naar zijn cache.