Free_deleted

Internφ programovacφ jazykC/C++PascalSQL

function Free_deleted(table : ttablenum) : Boolean;
BOOL [cd_]Free_deleted([cdp_t cdp], ttablenum table);
function [cd_]Free_deleted([cdp : cdp_t]; table : ttablenum) : Boolean;
PROCEDURE Free_deleted(IN tablename CHAR(31))

Parametry

table tabulka deklarovanß v programu - viz podrobnosti
[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.

V programu ve vnit°nφm jazyce smφ b²t parametrem table jak Φφslo tabulky zφskanΘ volßnφm funkce Find_object, tak i tabulka deklarovanß v tomto programu.

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 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 ve funkci Set_sql_option nastaven parametr 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φ₧.

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.

P°φklad

var cislo_tab : short;
begin
  if not Find_object("MY_TABLE", CATEG_TABLE, cislo_tab)
    then Free_deleted(cislo_tab);
end;

Viz