Funkce slouží k hromadnému přenášení dat mezi 602SQL servery, ODBC zdroji dat a soubory v různých formátech.
Je-li tato funkce zavolána uvnitř transakce, bude tato transakce ukončena. Efekt funkce nelze odvolat.
Popis přenosu je obsažen v objektu move_descr_obj. Pokud move_descr_obj je zadán (není NOOBJECT), pak funkce přečte tento popis z databáze připojené pomocí klientské proměnné cdp. Údaje zadané v popisu přenosu se následně upraví podle hodnot parametrů funkce počínaje parametrem src_schema. Pokud některý parametr má hodnotu NULL nebo -1, pak se ignoruje a použije se údaj z popisu přenosu.
Pokud move_descr_obj je NOOBJECT, pak funkce vytvoří na základě předaných parametrů implicitní návrh přenosu, stejně jak jej vytváří interaktivní návrhář. Hodnota parametru cdp se pak ignoruje.
Parametry src_xcdp a trg_xcdp jsou spojení na zdroj a cíl dat. Smějí mít hodnotu NULL pouze tehdy, je-li zdrojem resp. cílem je textový nebo DBF soubor.
Je-li v parametru flags nastaven bit 1, pak při přenosu do databázové tabulky v 602SQL se nebudou indexy upravovat průběžně, ale zahodí se a znovu se vytvoří po dokončení přenosu. V závislosti na množství dat v tabulce před přenosem a na množství přenášených dat to může zrychlit nebo zpomalit celkový čas operace.
Typ a formát zdroje a cíle přenosu dat popisují parametry src_format a trg_format podle této tabulky:
IMPEXP_FORMAT_WINBASE | 0 | soubor ve vnitřním formátu 602SQL (TDT) |
IMPEXP_FORMAT_TEXT_COLUMNS | 1 | textový soubor ve sloupcovém formátu |
IMPEXP_FORMAT_TEXT_CSV | 2 | textový soubor ve formátu CSV (údaje oddělené čárkami) |
IMPEXP_FORMAT_DBASE | 3 | soubor ve formátu dBase IV (DBF) |
IMPEXP_FORMAT_FOXPRO | 4 | soubor ve formátu FoxPro 2.0 (DBF) |
IMPEXP_FORMAT_ODBC | 5 | tabulka v ODBC zdroji dat |
IMPEXP_FORMAT_CURSOR | 6 | dotaz uložený v databázi 602SQL (pouze pro src_format) |
IMPEXP_FORMAT_ODBCVIEW | 7 | dotaz v ODBC zdroji dat |
IMPEXP_FORMAT_TABLE | 10 | tabulka ve databázi 602SQL |
Na základě hodnoty těchto parametrů jsou zdroj a cíl dat popsány ostatními parametry jedním ze tří způsobů:
Tabulka může být zdrojem nebo cílem přenosu dat, dotaz pouze zdrojem. Parametrem src_xcdp nebo trg_xcdp je pak klientská proměnná používaná pro spojení na 602SQL server, parametrem src_schema nebo trg_schema je schéma na tomto serveru a parametrem src_name nebo trg_name je jméno tabulky nebo dotazu v tomto schématu. Je-li schéma nastaveno ve spojení na server, pak parametrem určujícím toto schéma může být prázdný řetězec. Hodnota parametru src_code nebo trg_code se ignoruje.
Zadaná schémata a zdrojová tabulka nebo dotaz musejí existovat. Je-li cílem přenosu dat databázová tabulka, která dosud neexistuje, je vytvořena podle návrhu přenosu.
Tabulka může být zdrojem nebo cílem přenosu dat, dotaz pouze zdrojem. Parametrem src_xcdp nebo trg_xcdp je pak spojení na ODBC zdroj dat vytvořené funkcí ODBC_connect, parametrem src_schema nebo trg_schema je případné schéma nebo jiný kvalifikátor jmén objektů v tomto ODBC zdroji dat a parametrem src_name nebo trg_name je jméno tabulky nebo dotazu. Pokud ODBC zdroj dat nepoužívá schémata ani jiné kvalifikátory, pak parametrem určujícím toto schéma může být prázdný řetězec. Hodnota parametru src_code nebo trg_code se ignoruje.
Zdrojový i cílový objekt musejí existovat.
Parametr src_name nebo trg_name obsahuje jméno souboru, obvykle s plnou cestou. Hodnoty parametrů src_xcdp a src_schema nebo trg_xcdp a trg_schema se ignorují. Hodnota parametru src_code nebo trg_code popisuje kódování souboru takto:
hodnota | kódování |
0 | Windows cp1250 (východoevropské jazyky) |
1 | Windows cp1252 (západoevropské jazyky) |
2 | ASCII |
3 | ISO 8859-2 (východoevropské jazyky) |
4 | DOS cp852 (LATIN 2) (východoevropské jazyky) |
5 | ISO 8859-1 (západoevropské jazyky) |
6 | UTF-8 |
7 | UCS-2 |
6 | UCS-4 |
Pokud je soubor cílem přenosu dat, pak se exportem přepíše. Přidávání dat do souboru není podporováno. Soubor, z něhož se mají číst (nebo do něhož se mají zapisovat) data nesmí být jiným procesem otevřen.
Je-li zdrojem dat soubor TDT obsahující data ve vnitřním formátu (kod 0), musí být cílem pouze existující tabulka ve 602SQL (kod 10).
Pro PHP existuje funkce wb_data_transport, pro CDK (Delphi) třída TSQL602DataTransport.
Funkce vrací TRUE při úspěchu a FALSE při chybě.