Parametry
tablenum | číslo tabulky |
[cdp | kontextová proměnná klienta] |
tablename | pouze v SQL - jméno tabulky |
Popis
Funkce Free_deleted
uvolní všechny zrušené záznamy v tabulce table. Místo, které tyto záznamy zabíraly, může být poté využito pro nové záznamy. Zrušené a uvolněné záznamy nelze později obnovit funkcí Undelete
.
Parametrem table je číslo tabulky získané voláním funkce Find_object
.
Funkce se neprovede, je-li otevřen editovatelný kurzor z této tabulky nebo jsou-li na tabulku umístěné zámky jiného uživatele. V obou případech bude následná funkce Signalize
hlásit chybu "S objektem někdo pracuje". Zámky volajícího uživatele funkci neblokují.
Pokud v tabulce nezbude žádný platný záznam, pak čítač hodnot používaný ve sloupci s implicitní hodnotou unique se nastaví na nulu.
Jakožto procedura je implementováno Free_deleted
i na straně serveru, aby bylo možno uvolňovat záznamy i z prostředí uložených procedur a triggerů. Jako parametr se používá řetězec se jménem tabulky. Příklad volání v SQL:
CALL Free_deleted("MY_TABLE")
Je-li pomocí funkce Set_sql_option
nastaven příznak kompatibility SQLOPT_EXPLIC_FREE
, uvolnění záznamu proběhne okamžitě po zrušení, takže Free_deleted
není vůbec třeba používat. Využívá se v SQL komunikaci, kdy dvoustupňové mazání záznamů je na obtíž.
Před i po provedení funkce Free_deleted
se vyvolá implicitní commit - nelze odvolat!.
Hodnota funkce
Funkce vrací hodnotu FALSE, pokud se akci podařilo úspěšně provést. V opačném případě vrací TRUE a povahu chyby lze zjistit voláním funkce Signalize
.
Viz