Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Podczas pobierania i aktualizacji danych przez kursory SQL Server, aplikacja konsumencka dostawcy OLE DB Native Client OLE DB SQL Server musi podlegać tym samym zasadom i ograniczeniom, co każda inna aplikacja kliencka.
Tylko wiersze w kursorach SQL Server uczestniczą w jednoczesnej kontroli dostępu do danych. Gdy konsument żąda modyfikowalnego zestawu wierszy, kontrola współbieżności jest kontrolowana przez DBPROP_LOCKMODE. Aby zmodyfikować poziom równoczesnej kontroli dostępu, konsument ustawia właściwość DBPROP_LOCKMODE przed otwarciem zestawu wierszy.
Poziomy izolacji transakcji mogą powodować znaczne opóźnienia w pozycjonowaniu wiersza, jeśli projekt aplikacji klienckiej pozwala na pozostanie otwartymi przez dłuższy czas. Domyślnie dostawca OLE DB SQL Server Native Client korzysta z poziomu izolacji read-committed określonego przez DBPROPVAL_TI_READCOMMITTED. Provider natywnej klientowej bazy danych SQL Server obsługuje izolację brudnego odczytu, gdy współbieżność zestawu wiersza jest tylko do odczytu. Dlatego konsument może zażądać wyższego poziomu izolacji w modyfikowalnym zestawie wierszy, ale nie może skutecznie zażądać niższego poziomu.
Tryby natychmiastowej i opóźnionej aktualizacji
W trybie natychmiastowej aktualizacji każde wywołanie do IRowsetChange::SetData powoduje połączenie w obie strony do SQL Server. Jeśli konsument dokona wielu zmian w jednym wierszu, efektywniej jest przesłać wszystkie zmiany jednym wywołaniem SetData .
W trybie opóźnionej aktualizacji wykonywana jest podróż w obie strony do SQL Server dla każdego wiersza wskazanego w parametrach cRows i rghRowsw IRowsetUpdate::Update.
W obu trybach zwrot w obie strony reprezentuje odrębną transakcję, gdy żaden obiekt transakcji nie jest otwarty dla zestawu wierszy.
Gdy korzystasz z IRowsetUpdate::Update, provider natywnego klienta OLE DB SQL Server próbuje przetworzyć każdy wskazany wiersz. Błąd wynikający z nieprawidłowych danych, długości lub wartości statusu dla dowolnego wiersza nie zatrzymuje przetwarzania usług dostawcy SQL Server Native Client OLE DB. Wszystkie lub żadne inne wiersze uczestniczące w aktualizacji mogą być modyfikowane. Konsument musi przeanalizować zwróconą tablicę prgRowStatus, aby określić awarię dla konkretnego wiersza, gdy provider SQL Server Native Client OLE DB zwraca DB_S_ERRORSOCCURRED.
Konsument nie powinien zakładać, że wiersze są przetwarzane w określonej kolejności. Jeśli konsument wymaga uporządkowanego przetwarzania modyfikacji danych w więcej niż jednym wierszu, powinien ustalić ten porządek w logice aplikacji i otworzyć transakcję, aby zamknąć proces.