Funkce exportuje otevřenou aplikaci do souborů. Zobecňuje starší funkci Export_appl_ex (která již není ve verzi 9 použitelná). Vlastnosti exportu jsou popsány ve struktuře epar takto:
Složka | význam |
cbSize | velikost struktury t_export_param v bajtech |
hParent | rodičovské okno pro případné dialogy (od verze 9 nevyužito) |
with_data | exportovat včetně dat v tabulkách (význam dalších 6 parametrů naleznete v popisu dialogu pro export aplikace) |
with_role_privils | exportovat včetně práv rolí |
with_usergrp | exportovat včetně práv uživatelů a skupin |
exp_locked | exportovat zašifrovaně |
back_end | exportovat pouze back-end (od verze 9 nevyužito) |
date_limit | pokud obsahuje nenulovou hodnotu, udává datum a exportují se pouze objekty změněné po tomto datu, je-li nula, exportují se všechny komponenty aplikace |
file_name | plná cesta k výstupnímu souboru s příponou APL, udává zároveň adresář pro umístění ostatních souborů vzniklých při exportu; |
long_names | je-li TRUE, pak se jména souborů přímo odvodí ze jmen objektů, je-li FALSE, pak jména souborů budou zkrácena na formát 8.3 (od verze 9 nevyužito) |
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 |
schema_name | jméno exportované aplikace, pokud je prázdné, použije se aktuální jméno |
overwrite | pokud některý z exportovaných souborů existuje a overwrite má hodnotu FALSE (0), skončí export s chybou, pokud má nenulovou hodnotu, bude soubor přepsán |
Složka report_progress říká, zdá se má zobrazovat průběh exportu. Je-li callback = nil, zobrazí se průběh exportu 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_export_param. Je-li procedura specifikována, volá ji funkce Export_appl_param při exportu 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 exportu a ve Value je 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 exportovaným objektem |
IMPEXP_PROGSTEP | N/A | Volána po skončení exportu 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_export_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ě.
Export aktuální aplikace z Delphi (CDK)
procedure TMainForm.ac_aplexportExecute(Sender: TObject); var myep : t_export_param; aplfile_name : string; begin aplfile_name := SQL602Connection1.Application+'.apl'; SaveDialog_expapl.FileName := 'c:\'+aplfile_name; SaveDialog_expapl.Filter := 'Definiční soubor (*.apl)|*.apl'; if SaveDialog_expapl.Execute then aplfile_name := SaveDialog_expapl.FileName; with myep do begin hParent := 0; with_data := TRUE; with_role_privils := TRUE; with_usergrp := FALSE; exp_locked := FALSE; back_end := FALSE; date_limit := 0; file_name := Pchar(aplfile_name); long_names := TRUE; report_progress := TRUE; callback := NIL; param := NIL; schema_name := Pchar(SQL602Connection1.Application); //resp := '' overwrite := TRUE; end; myep.cbSize := SizeOf(myep); if SQL602Connection1.Export_appl_param(myep) then ShowMessage('Export proběhl OK') else ShowMessage('Export skončil s chybou'); end;