Not
Å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.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-databas i Microsoft Fabric
När data hämtas och uppdateras via SQL Server-markörer är en OLE DB-drivrutin för SQL Server-konsumentapplikationer bunden av samma överväganden och begränsningar som gäller för alla andra klientapplikationer.
Endast rader i SQL Server-kursorer deltar i samtidig dataåtkomstkontroll. När konsumenten begär en modifierbar raduppsättning styrs samtidighetskontrollen av DBPROP_LOCKMODE. För att ändra nivån av samtidig åtkomstkontroll sätter konsumenten egenskapen DBPROP_LOCKMODE innan raduppsättningen öppnas.
Transaktionsisoleringsnivåer kan orsaka betydande fördröjningar i radpositionering om klientapplikationsdesignen låter transaktioner vara öppna under långa perioder. Som standard använder OLE DB-drivrutinen för SQL Server den läs-committerade isoleringsnivån som anges av DBPROPVAL_TI_READCOMMITTED. OLE DB-drivrutinen för SQL Server stöder dirty read isolation när raduppsättningens samtidighet är skrivskyddad. Därför kan konsumenten begära en högre nivå av isolering i en modifierbar raduppsättning men kan inte begära någon lägre nivå framgångsrikt.
Omedelbara och fördröjda uppdateringslägen
I omedelbar uppdateringsläge orsakar varje anrop till IRowsetChange::SetData en rundresa till SQL Server. Om konsumenten gör flera ändringar i en enda rad är det mer effektivt att skicka alla ändringar med ett enda SetData-anrop .
I fördröjd uppdateringsläge görs en rundresa till SQL Server för varje rad som anges i parametrarna cRows och rghRows i IRowsetUpdate::Update.
I båda lägena representerar en rundresa en distinkt transaktion när inget transaktionsobjekt är öppet för radmängden.
När du använder IRowsetUpdate::Update försöker OLE DB-drivrutinen för SQL Server bearbeta varje angiven rad. Ett fel som uppstår på grund av ogiltig data, längd eller statusvärden för någon rad stoppar inte OLE DB-drivrutinen för SQL Server-bearbetning. Alla eller inga av de andra raderna som deltar i uppdateringen kan ändras. Konsumenten måste undersöka den returnerade prgRowStatus-matrisen för att avgöra fel för en specifik rad när OLE DB-drivrutinen för SQL Server returnerar DB_S_ERRORSOCCURRED.
En konsument bör inte anta att rader behandlas i någon specifik ordning. Om en konsument kräver ordnad bearbetning av dataändring över mer än en rad bör konsumenten etablera den ordningen i applikationslogiken och öppna en transaktion för att omsluta processen.