Udostępnij za pośrednictwem


Aktualizacje pozycjonowane (ODBC)

ODBC obsługuje dwie metody przeprowadzania aktualizacji pozycjonowane w kursor:

  • SQLSetPos

  • Klauzula WHERE CURRENT OF

Więcej wspólne podejście jest użycie SQLSetPos.Posiada następujące opcje.

  • SQL_POSITION
    Umieszczenie kursor w określonym wierszu w bieżącym zestawie zestaw wierszy.

  • SQL_REFRESH
    Odświeża program zmienne związane z kolumn zestaw wyników z wartościami z wiersza kursor jest aktualnie ustawiony na.

  • SQL_UPDATE
    Aktualizuje bieżący wiersz kursora z wartościami przechowywanymi w zmiennych program związany z zestaw wyników kolumny.

  • SQL_DELETE
    Usuwa bieżący wiersz kursor.

SQLSetPos może być używany z dowolną instrukcję zestaw wyników podczas atrybuty kursor dojścia instrukcja są skonfigurowane do korzystania z serwera kursory.Zmienne program musi być powiązana kolumn zestaw wyników.Jak najszybciej aplikacja została pobrana wiersz wywołuje SQLSetPos(SQL_POSTION), aby umieścić kursor w wierszu.Aplikacja może wywoływać SQLSetPos(SQL_DELETE), aby usunąć bieżący wiersz lub go przenieść nowe dane wartości do zmiennych związanych 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 działa na bieżącej zestaw wierszy i mogą być używane tylko po wywołaniu SQLFetchScroll.

Rozmiar zestaw wierszy jest ustawiany przez wywołanie SQLSetStmtAttr z argumentem atrybut SQL_ATTR_ROW_ARRAY_SIZE.SQLSetPos używa nowy rozmiar zestawu zestaw wierszy, ale tylko po wywołaniu SQLFetch lub SQLFetchScroll.Na przykład, jeśli zostanie zmieniony rozmiar zestawu zestaw wierszy SQLSetPos jest nazywany a SQLFetch lub SQLFetchScroll jest wywoływana.Wywołanie SQLSetPos używa starej rozmiar zestawu zestaw wierszy, ale SQLFetch lub SQLFetchScroll używa nowy rozmiar zestawu zestaw wierszy.

Pierwszy wiersz w zestawie zestaw wierszy jest numer wiersza 1.RowNumber argument SQLSetPos należy zidentyfikować zestaw wierszy w zestawie zestaw wierszy; oznacza to, że jego wartość musi być z zakres od 1 do liczby wierszy, które ostatnio były pobierane.Może być mniejszy niż rozmiar zestawu zestaw wierszy.Jeśli RowNumber jest równa 0, operacja dotyczy wszystkich zestaw wierszy w zestawie zestaw wierszy.

Operacja usuwania z SQLSetPos sprawia, że źródło danych, usuń jeden lub więcej wybranych wierszy tabela.Aby usunąć wiersze z SQLzestawPos, wywołania aplikacji SQLzestawPos z operacją zestaw SQL_DELETE i RowNumber zestaw do numeru wiersza do usunięcia.RowNumber jest równa 0, usuwane są wszystkie wiersze w zestawie zestaw wierszy.

Po SQLSetPos zwraca usunięty wiersz jest bieżący wiersz i jego stan jest SQL_ROW_DELETED.Wiersza nie można używać w żadnych dodatkowych operacji pozycjonowane, takich jak wywołania Procedura SQLGetData lub SQLSetPos.

Po usunięciu wszystkich zestaw wierszy zestawu zestaw wierszy (RowNumber jest równe 0) aplikacji można zapobiec sterownik usuwania niektórych zestaw wierszy za pomocą tablicy operacji wiersza tak samo jak dla operacji aktualizacji z SQLSetPos.

Każdy wiersz, który zostanie usunięty, powinien być wiersz, który istnieje zestaw wyników.Jeśli buforów aplikacji zostały wypełnione przez pobieranie i tablicy stan wiersza została zachowana, 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 również wykonać za pomocą klauzula gdzie bieżący z na AKTUALIZACJĘ, usuwanie i WSTAWIĆ sprawozdania.GDZIE bieżący wymaga kursor nazwy przez ODBC wygeneruje podczas SQLGetCursorName wywoływana jest funkcja lub określany przez wywołanie SQLSetCursorName.Dostępne są następujące ogólne kroki używane do wykonywania aktualizacji gdzie bieżący z w aplikacji ODBC:

  • Wywołanie SQLSetCursorName nazwa kursor dla dojścia instrukcja ustanowić.

  • Tworzenie instrukcja SELECT z klauzula dla aktualizacji 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.

  • Budowanie i wykonać instrukcja UPDATE, z którym BIEŻĄCEJ Z klauzulą przy użyciu nazwy kursor zestaw z SQLSetCursorName.

Alternatywnie można nazwać SQLGetCursorName po wykonać instrukcja SELECT, zamiast od telefoniczną SQLSetCursorName przed wykonaniem instrukcja SELECT.SQLGetCursorName zwraca nazwę kursor domyślny przypisany przez ODBC, jeśli nie zestaw nazwa kursora za pomocą SQLzestawCursorName.

SQLSetPos jest preferowane gdzie bieżący z podczas korzystania z serwera kursory.Jeśli używasz statycznych, aktualizowalnego kursor z Biblioteka kursorów ODBC Biblioteka kursorów implementuje gdzie bieżący z aktualizacji przez dodanie klauzula WHERE z wartości klucz dla tabela źródłowa.To może spowodować niezamierzone aktualizacji kluczy w tabela nie są unikatowe.