Provádění pozičních příkazů Update a Delete

Important

Tato funkce se odebere v budoucí verzi Windows. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají. Microsoft doporučuje používat funkci kurzoru ovladače.

Poté, co aplikace načte blok dat pomocí SQLFetchScroll, může data v bloku aktualizovat nebo smazat. Pro provedení umístěné aktualizace nebo smazání aplikace:

  1. Volá SQLSetPos, aby umístil kurzor na řádek, který má být aktualizován nebo smazán.

  2. Sestavuje umístěný příkaz update nebo delete s následující syntaxí:

    UPDATE Název tabulky

    SET Identifikátor= sloupce {výraz | NULL}

    [,identifikátor= sloupce {výraz | NULL}]

    KDE PROUDkurzorového názvu

    DELETE Znázvu tabulkyKDE PROUDkurzorového názvu

    Nejjednodušší způsob, jak sestavit klauzuli SET v příkazu positioned update, je použít parametrové značky pro každý sloupec, který má být aktualizován, a použít SQLBindParameter k jejich přiřazení k řádkovým bufferům pro řádek, který má být aktualizován. V tomto případě bude typ dat C parametru stejný jako typ dat C řádkového bufferu.

  3. Aktualizuje řádkové buffery pro aktuální řádek, pokud spustí příkaz pro aktualizaci polohy. Po úspěšném provedení příkazu positioned update knihovna kurzorů zkopíruje hodnoty z každého sloupce v aktuálním řádku do své cache.

    Caution

    Pokud aplikace správně neaktualizuje řádkové buffery před vykonáním příkazu s umístěnou aktualizací, data v cache budou po vykonání příkazu nesprávná.

  4. Vykoná příkaz "positioned update" nebo delete pomocí jiného příkazu, než jaký je přiřazen k kurzoru.

    Caution

    Klauzule WHERE vytvořená kurzorovou knihovnou pro identifikaci aktuálního řádku může selhat v identifikaci žádných řádků, jiného řádku nebo více než jednoho řádku. Pro více informací viz Konstruování vyhledávaných výroků.

Všechny pozice příkazů update a delete vyžadují název kurzoru. Pro určení názvu kurzoru aplikace volá SQLSetCursorName před jeho otevřením. Pro použití názvu kurzoru generovaného ovladačem aplikace po otevření kurzoru volá SQLGetCursorName .

Po vykonání příkazu pro umístění knihovny kurzorů update nebo delete obsahují stavové pole, řádkové buffery a cache udržované knihovnou kurzoru hodnoty uvedené v následující tabulce.

Použité tvrzení Hodnota v poli stavů řádků Hodnoty v

Řádkové vyrovnávací paměti
Hodnoty v

Cache buffery
Aktualizace polohy SQL_ZÁZNAM_AKTUALIZOVÁN Nové hodnoty[1] Nové hodnoty[1]
Umístěné mazání SQL_ROW_DELETED Staré hodnoty Staré hodnoty

[1] Aplikace musí před vykonáním příkazu pro aktualizaci pozice aktualizovat hodnoty v bufferech řádků; Po provedení příkazu Positioned Update knihovna kurzorů zkopíruje hodnoty v bufferu řádkové sady do své cache.