Compact_table

c/c++pascal

BOOL [cd_]Compact_table ([cdp_t cdp,] ttablenum table);
function [cd_]Compact_table ([cdp : cdp_t;] table : ttablenum) : Boolean;

Parametry

table číslo tabulky
[cdp kontextová proměnná klienta]

Od verze

5.1

Popis

Funkce provede zkompaktnění tabulky. Uvolní zrušené záznamy a přemístí záznamy tak, že v tabulce nebudou mezi platnými záznamy žádné uvolněné ani zrušené záznamy. Pořadí záznamů z doby před akcí nebude zachováno.

Parametrem table je číslo tabulky získané voláním funkce Find_object.

Zkompaktnění nelze provést na systémových tabulkách.

Pokud se do tabulky průběžně přidávají a ruší záznamy, pak stačí zajistit jejich uvolňování (buď průběžně v okamžiku zrušení (funkce Set_sql_option parametrem SQL_EXPLIC_FREE) nebo jednorázově (funkce Free_deleted)) a není třeba provádět zkompaktnění. Zkompaktnění má smysl pouze tehdy, pokud tabulka obsahuje velmi mnoho uvolněných záznamů, které nebudou v dohledné době využity pro vkládání nových záznamů.

Funkce je ekvivalentní akci Zkompaktnění tabulky, kterou lze použít na jednu nebo více tabulek označených na řídicím panelu.

Od verze 8:

Při běžné práci s tabulkou (i po uvolnění zrušených záznamů v tabulce případně i po zkompaktnění tabulky) může být na konci tabulky nevelký počet volných záznamů. Souvisí to s novým mechanismem přidělování diskového prostoru tabulce a na činnost serveru to nemá žádný vliv.

Viz