Delen via


Recordset: Vergrendelen van records (ODBC)

Dit onderwerp is van toepassing op de MFC ODBC-klassen.

In dit onderwerp wordt uitgelegd:

Wanneer u een recordset gebruikt om een record in de gegevensbron bij te werken, kan uw toepassing de record vergrendelen, zodat geen andere gebruiker de record tegelijkertijd kan bijwerken. De status van een record die door twee gebruikers tegelijk wordt bijgewerkt, is niet gedefinieerd, tenzij het systeem kan garanderen dat twee gebruikers een record niet tegelijkertijd kunnen bijwerken.

Opmerking

Dit onderwerp is van toepassing op objecten die zijn afgeleid van CRecordset waaruit bulksgewijs ophalen van rijen niet is geïmplementeerd. Als u bulksgewijs ophalen van rijen hebt geïmplementeerd, is een deel van de informatie niet van toepassing. U kunt bijvoorbeeld de Edit functies en Update leden niet aanroepen. Zie Recordset: Recordset ophalen in bulk (ODBC) voor meer informatie over het ophalen van bulkrijen.

Record-Locking modi

De databaseklassen bieden twee recordvergrendelingsmodi:

  • Optimistische vergrendeling (de standaardinstelling)

  • Pessimistische vergrendeling

Het bijwerken van een record vindt plaats in drie stappen:

  1. U begint de bewerking door de functie Lid bewerken aan te roepen.

  2. U wijzigt de juiste velden van het huidige record.

  3. U beëindigt de bewerking ( en voert normaal gesproken de update door) door de functie Lid bijwerken aan te roepen.

Optimistische vergrendeling vergrendelt de record alleen tijdens het aanroepen van de Update gegevensbron. Als u optimistische vergrendeling in een omgeving met meerdere gebruikers gebruikt, moet de toepassing een Update foutvoorwaarde afhandelen. Pessimistische vergrendeling vergrendelt de record zodra u belt Edit en laat deze pas los totdat u aanroept Update (fouten worden aangegeven via het CDBException mechanisme, niet door een waarde van FALSE geretourneerd door Update). Pessimistische vergrendeling kan een prestatieverlies voor andere gebruikers betekenen, omdat toegang tot dezelfde record tegelijkertijd mogelijk moet wachten totdat het proces van uw toepassing Update is voltooid.

Records vergrendelen in uw recordset

Als u de vergrendelingsmodus van een recordsetobject wilt wijzigen van de standaardinstelling, moet u de modus wijzigen voordat u aanroept Edit.

De huidige vergrendelingsmodus voor uw recordset wijzigen

  1. Roep de lidfunctie SetLockingMode aan, waarbij u CRecordset::pessimistic of CRecordset::optimistic specificeert.

De nieuwe vergrendelingsmodus blijft van kracht totdat u deze opnieuw wijzigt of de recordset wordt gesloten.

Opmerking

Relatief weinig ODBC-stuurprogramma's ondersteunen op dit moment pessimistische vergrendeling.

Zie ook

Recordset (ODBC)
Recordset: Een join uitvoeren (ODBC)
Recordset: Records toevoegen, bijwerken en verwijderen (ODBC)