Funkce importuje aplikaci do databáze. Zobecňuje starší funkci Import_appl_ex (která již není ve verzi 9 použitelná). Vlastnosti importu jsou popsány ve struktuře ipar takto:
Složka | význam |
cbSize | velikost struktury t_import_param v bajtech |
hParent | rodičovské okno pro případné dialogy (od verze 9 nevyužito) |
flags | příznaky importu |
file_name | plná cesta k definičnímu souboru aplikace s příponou .apl; je-li nil, funkce zobrazí dialog na výběr souboru |
alternate_name | jméno aplikace pro přejmenování |
report_progress | je-li TRUE, pak se bude volat callback |
callback | procedura, která bude zavolána pro každý objekt exportu nebo nil. |
param | nepovinný parametr předaný beze změny funkci callback |
Hodnoty parametru flags:
IMPAPPL_NEW_INST | 1 |
IMPAPPL_USE_ALT_NAME | 2 |
IMPAPPL_REPLACE | 4 |
Hodnoty parametru flags mají význam pouze pokud importovaná aplikace už existuje. Pokud importovaná aplikace existuje a není nastaven ani IMPAPPL_NEW_INST ani IMPAPPL_REPLACE, skončí import s chybou ERROR_IN_FUNCTION_ARG (180). Pokud je nastaven IMPAPPL_REPLACE, původní aplikace se nahradí novou. Pokud je nastaven IMPAPPL_NEW_INST, vytoří se aplikace nová. Je-li nastaven IMPAPPL_USE_ALT_NAME, použije se jméno z alternate_name, jinak se použije automaticky vytvořené jméno odvozené z původního jména aplikace.
Složka report_progress říká, zdá se má zobrazovat průběh importu. Je-li callback = nil, zobrazí se průběh importu pomocí standardního dialogu 602SQL. Je-li hodnotou složky callback ukazatel na proceduru typu:
procedure CallBack(Categ : Integer; Value : PChar; Param : Pointer ); stdcall; void CallBack( int Categ, char * Value, void * Param );
může aplikace informovat o průběhu exportu vlastními prostředky. Argument Categ určuje typ stavové informace, argument Value její hodnotu a argument Param je kopií hodnoty složky param ze struktury t_import_param. Je-li procedura specifikována, volá ji funkce Import_appl_param při importu každého objektu a v několika dalších situacích:
Categ | Value | Popis |
IMPEXP_PROGMAX | počet objektů (typu Integer) | Volána na začátku Importu a ve Value udává počet všech objektů v aplikaci (jako Integer), umožňuje např. nastavit property Max na ProgressBaru |
CATEG_... | jméno objektu | Volána pro každý objekt, vrací kategorii a jméno exportovaného objektu |
IMPEXP_FILENAME | viz popis | Pokud následuje po volání IMPEXP_PROGMAX, je Value jméno APL souboru, pokud následuje po volání CATEG_..., je Value jméno souboru s importovaným objektem |
IMPEXP_PROGPOS | N/A | Volána po skončení importu objektu, umožňuje např. posunout ProgressBar o jeden krok (Value nemá význam) |
IMPEXP_ERROR | popis chyby | Chybové hlášení o příčině neúspěchu importu objektu, nebo o výsledku importu celé aplikace |
IMPEXP_STATUS | závěrečná informace o úspěchu či neúspěchu importu | Na konci importu |
Definici struktury t_import_param a případné procedury z parametru callback naleznete v definičních souborech pro příslušné programovací jazyky.
Funkce vrací TRUE při úspěchu a FALSE při chybě.