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