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;