Aktualizacje pozycjonowane (ODBC)
Aktualizowaniu pozycjonowane w kursorze ODBC obsługuje dwie metody:
SQLSetPos
Klauzula WHERE CURRENT OF
Najczęściej metoda jest użycie SQLSetPos.Ma następujące opcje.
SQL_POSITION
Umieszczenie kursor w określonym wierszu w bieżącym zestawie zestaw wierszy.SQL_REFRESH
Odświeżanie program zmiennych związany z kolumn zestaw wyników z wartościami w wierszu kursor jest aktualnie ustawiony.SQL_UPDATE
Aktualizuje wartości przechowywane w zmiennych program związany z bieżącego wiersza w kursor zestaw wyników kolumn.SQL_DELETE
Usuwa bieżący wiersz kursor.
SQLSetPos mogą być używane z zestaw po instrukcja dojście kursor atrybuty są skonfigurowane do korzystania z kursorów serwera żadnych wyników instrukcja.Musi być powiązana kolumn zestaw wyników do programu zmiennych.Tak szybko, jak aplikacja została pobrana wiersz wywołuje SQLSetPos(SQL_POSTION) aby umieścić kursor w wierszu.Aplikacja może następnie wywołać SQLSetPos(SQL_DELETE), aby usunąć bieżący wiersz lub można przenieść nowe wartości danych do zmiennych związanego program i wywołać SQLSetPos(SQL_UPDATE) aktualizacji bieżącego wiersza.
Aplikacje można zaktualizować lub usunąć każdy wiersz w zestawie zestaw wierszy z SQLSetPos.Wywołanie SQLSetPos jest wygodną alternatywą dla tworzenia i wykonywania instrukcja języka SQL.SQLSetPos operuje na zestawie zestaw wierszy bieżącej i mogą być używane tylko po wywołaniu SQLFetchScroll.
Rozmiar zestaw wierszy jest ustawiany przez wywołanie do SQLSetStmtAttr z argumentem atrybut SQL_ATTR_ROW_ARRAY_SIZE.SQLSetPos używa nowy rozmiar zestawu zestaw wierszy, ale tylko po wywołaniu SQLFetch or SQLFetchScroll.Na przykład w przypadku zmiany rozmiaru zestaw wierszy SQLSetPos nosi nazwę i następnie SQLFetch or SQLFetchScroll nosi nazwę.Wywołanie SQLSetPos używa stary rozmiar zestawu zestaw wierszy, ale SQLFetch or SQLFetchScroll używany nowy rozmiar zestawu zestaw wierszy.
Pierwszy wiersz w zestawie zestaw wierszy jest numer wiersza 1.Argument RowNumber SQLSetPos musi określać zestaw wierszy w zestawie zestaw wierszy, to znaczy jego wartość musi być z zakres od 1 do liczby zestaw wierszy, które zostały niedawno pobrane.Może to być mniejszy niż rozmiar zestawu zestaw wierszy.Jeżeli RowNumber wynosi 0, operacja ma zastosowanie do wszystkich zestaw wierszy w zestawie zestaw wierszy.
Operacja usuwania z SQLSetPos sprawia, że urządzenie źródłowe danych, usuń jeden lub więcej wybranych wierszy tabela.Aby usunąć wiersze SQLzestawPos, aplikacja ta wywołuje SQLzestawPos z operacji zestaw SQL_DELETE i RowNumber zestaw do liczby wierszy do usunięcia.Jeżeli RowNumber wynosi zero, usuwane są wszystkie wiersze w zestawie zestaw wierszy.
Po SQLSetPos zwraca, usunięto wiersz jest wierszem bieżącego i jego stan jest SQL_ROW_DELETED.W wierszu nie mogą być używane w żadnych dodatkowych operacji pozycjonowane, takich jak wywołania SQLGetData or SQLSetPos.
Po usunięciu wszystkich zestaw wierszy z zestawu zestaw wierszy (RowNumber jest równa 0), aplikacja może uniemożliwić sterownik usuwania określonych zestaw wierszy przy użyciu tablicy operacji wiersza tak samo jak dla aktualizacji działania SQLSetPos.
Każdy wiersz, który zostanie usunięty, należy wiersz, który znajduje się zestaw wyników.Jeśli buforów aplikacji zostały wypełnione przez pobieranie i utrzymywał macierz stanu wierszy, jej wartości w każdym z tych pozycji wiersz nie powinien być SQL_ROW_DELETED, SQL_ROW_ERROR lub SQL_ROW_NOROW.
Aktualizacje pozycjonowane można także wykonać za pomocą klauzula WHERE CURRENT OF na UPDATE, DELETE, a instrukcji INSERT.WHERE CURRENT OF wymaga kursor nazwy tego ODBC wygeneruje kiedy SQLGetCursorName funkcja lub określany przez wywołującego SQLSetCursorName.Poniżej przedstawiono ogólne kroki wymagane do wykonywania aktualizacji WHERE CURRENT OF w aplikacji ODBC:
Wywołanie SQLSetCursorName ustanowienie nazwa kursor dla dojścia instrukcja.
Tworzenie instrukcja SELECT z klauzula FOR UPDATE Z oraz ją wykonać.
Wywołanie SQLFetchScroll do pobierania zestawu zestaw wierszy lub SQLFetch pobrać wiersz.
Wywołanie SQLSetPos (SQL_POSITION) aby umieścić kursor w wierszu.
Tworzenie i wykonać instrukcja SQL UPDATE z klauzula WHERE CURRENT OF przy użyciu nazwy kursor zestaw z SQLzestawCursorName.
Alternatywnie można wywołania SQLGetCursorName po wykonaniu instrukcja SELECT zamiast wywoływania SQLSetCursorName przed wykonaniem instrukcja SELECT.SQLGetCursorName Zwraca kursor domyślnej nazwy przypisane przez ODBC po ustawieniu nazwa kursora, za pomocą SQLSetCursorName.
SQLSetPos jest preferowana przez WHERE CURRENT OF podczas korzystania z kursorów serwera.Jeśli korzystasz z statyczne, które można aktualizować kursor w bibliotece kursorów ODBC, bibliotece kursorów implementuje WHERE CURRENT OF aktualizacje dodając klauzulę z wartości klucz dla tabela podstawowej.To może spowodować niezamierzone aktualizacji kluczy w tabela nie są unikatowe.