Zmiana wierszy z operacjami pozycjonowanego
Kursory aktualizowalna obsługuje instrukcji modyfikacji danych, które aktualizowania wierszy przez kursor.Ustawiony na wiersz w aktualizowalnego kursor, można przeprowadzić aktualizację lub usunąć operacje miejsce docelowe używane do konstruowania bieżącego wiersza w kursorze wiersze tabela bazowa.Te nazywane są pozycjonowane aktualizacje.
Aktualizacje pozycjonowane są wykonywane dla połączenia, która otworzyła kursor.Umożliwia współużytkowanie tej samej przestrzeni transakcji jako kursor modyfikacji danych i zapobiega aktualizacji blokowane przez blokady przechowywane przez kursor.
Istnieją dwie metody przeprowadzania aktualizacji pozycjonowane w kursor:
Transact-SQL klauzula gdzie bieżący z aktualizacji lub usunięcia instrukcja.
Baza danych API aktualizacja pozycjonowana funkcja lub metoda, takie jak ODBC SQLSetPos funkcja.
Wykonywanie położenie aktualizacje Transact-SQL
Transact-SQL Gdzie bieżący z klauzula jest zwykle używana w Transact-SQL procedur przechowywanych, wyzwalaczy i skrypty po modyfikacji trzeba utworzyć oparte na określonych wierszy w kursor.procedura składowana, wyzwalacza lub skrypt będzie:
ZADEKLAROWAĆ i otwórz kursor.
Użyj instrukcji pobrania uzyskać umiejscowić wiersz w kursor.
Wykonywanie aktualizacji lub usunięcia instrukcja przy użyciu klauzula gdzie bieżącego programu.Użyj cursor_name z instrukcja DECLARE jako cursor_name gdzie bieżący z klauzula.
Wykonywanie umieszczony aktualizacje z interfejsów API
Kursory utworzonych za pomocą funkcji OLE DB i ADO i metody nie są używane w gdzie bieżący z klauzul, ponieważ nie mają nazwy.ODBC, jednak obsługuje pobieranie nazwy dla kursor serwera interfejsu API z SQLGetCursorName funkcja.Po ustawieniu kursora atrybutów i otwieranie kursor przez wykonywanie Transact-SQL instrukcja użycia SQLGetCursorName funkcja, aby uzyskać nazwę kursora.Po położenie kursor, wykonywanie aktualizacji lub usunięcia instrukcja z gdzie bieżący z klauzulą odwołującego się do nazwy zwracane przez SQLGetCursorName.Jednak ta metoda nie jest zalecane.Zamiast tego lepiej użyć jest aktualizacja pozycjonowana funkcje interfejsu API ODBC.
Bazy danych API obsługuje dwie różne metody pozycjonowane operacji na API serwera kursory.ODBC obsługuje jednego modelu OLE DB i obiektów ADO drugiej.
W ODBC powiązanie kolumn kursor do zmiennych programu, a następnie umieść na określonego wiersza w kursorze.Jeśli wykonanie aktualizacja pozycjonowana, zmień wartości danych w programie zmiennych nowych wartości.Wywołanie SQLSetPos funkcja do wykonywania operacji pozycjonowane.
Tej funkcji ma następujące opcje:
SQLSetPos(SQL_POSITION)
ODBC, z kursor ODBC w określonym wierszu w bieżącym zestawie zestaw wierszy.SQLSetPos(SQL_REFRESH)
Odświeża program zmienne związane z kolumn zestaw wyników z wartościami z wiersza kursor jest aktualnie ustawiony na.SQLSetPos(SQL_UPDATE)
Aktualizuje bieżący wiersz kursora z wartościami przechowywanymi w zmiennych program związany z zestaw wyników kolumny.SQLSetPos(SQL_DELETE)
Usuwa bieżący wiersz kursor.
OLE DB i obiektów ADO obsługuje pozycjonowane aktualizacji za pomocą innego modelu.
OLE DB, ustawiony na wiersz w zestawie zestaw wierszy, wywołać IRowsetChange::SetData lub IRowsetChange::DeleteRows metod przeprowadzania aktualizacji pozycjonowane.Jeśli dostawca OLE DB obsługuje IRowsetUpdate::Update, zmiany z IRowsetChange metody są buforowane, do czasu wywołania IRowsetUpdate::Update.Jeśli dostawca OLE DB nie obsługuje IRowsetUpdate::Update, zmiany z IRowsetChange metody są dokonywane natychmiast.
Obiekty ADO, ustawiony na wiersz w zestawie rekordów, wywołać rekordów obiektu aktualizacji lub usunąć metod przeprowadzania aktualizacji pozycjonowane.Jeśli dostawca OLE DB obsługuje IRowsetUpdate::Update, zmiany z rekordów obiektu Aktualizacja lub usunąć metoda są buforowane, do czasu wywołania rekordów obiektu UpdateBatch metoda.Jeśli dostawca OLE DB nie obsługuje IRowsetUpdate::Update, zmiany z rekordów obiektu Aktualizacja lub usunąć metody są dokonywane natychmiast.