Compact_database

c/c++pascal

BOOL [cd_]Compact_database ([cdp_t cdp,] int margin);
function [cd_]Compact_database ([cdp : cdp_t;] margin : integer) : Boolean

Parametry

margin počet volných bloků (clusterů)
[cdp Kontextová proměnná klienta]

Od verze

5.1

Popis

Funkce provede zkompaktnění databáze. Tato akce přemístí bloky dat v databázovém souboru tak, aby mezi nimi nebylo zbytečné volné místo (např. po odstraněné aplikaci apod.) a tím výrazně zmenší velikost souboru.

Funkce neprovádí zkompaktnění tabulek - k tomu slouží funkce Compact_table.

Pomocí parametru margin lze stanovit, kolik bloků (clusterů) v databázovém souboru má zbýt po skončení operace prázdných - připravených pro ukládání dat bez nutnosti měnit velikost souboru.

Touto funkcí nemůže být databázový soubor zvětšen, pouze zmenšen. Zvětšení souboru se provádí funkcí GetSet_fil_size nebo GetSet_fil_blocks.

Funkci lze volat pouze v situaci, kdy na server není přihlášen žádný jiný uživatel (ani systémové vlákno nebo detached SQL procedura). Při zavolání funkce nesmí být otevřen žádný kurzor. V opačném případě dojde k chybě NOT_LOCKED (136). Akci smí provést jen Provozní správce (CONFIG_ADMIN), jinak dojde k chybě NO_RIGHTS (129 - Nemáte právo provést tuto akci).

Akce může trvat delší dobu.