Data_transport

C/C++Pascal

BOOL cd_Data_transport(cdp_t cdp, tobjnum move_descr_obj, xcdp_t src_xcdp, xcdp_t trg_xcdp, const char * src_schema, const char * trg_schema, const char * src_name, const char * trg_name, int src_format, int trg_format, int src_code, int trg_code, unsigned flags);
function cd_Data_transport(cdp:cdp_t; move_descr_obj:tobjnum; src_xcdp:xcdp_t; trg_xcdp:xcdp_t; src_schema:PChar; trg_schema:PChar; src_name:PChar; trg_name:PChar; src_format:Integer; trg_format:Integer; src_code:Integer; trg_code:Integer; flags:Cardinal) : Boolean;


Parametry

cdp
kontextová proměnná klienta
move_descr_obj
číslo objektu definujícícho přenos dat nebo NOOBJECT
src_xcdp
spojení na zdroj přenosu dat
trg_xcdp
spojení na cíl přenosu dat
src_schema
schéma v rámci zdroje přenosu dat
trg_schema
schéma v rámci cíle přenosu dat
src_name
tabulka, dotaz nebo soubor obsahující zdrojová data
trg_name
tabulka nebo soubor pro zápis dat
src_format
formát zdroje přenosu dat
trg_format
formát cíle přenosu dat
src_code
kódování ve zdrojovém souboru
trg_code
kódování v cílovém souboru
flags
příznaky ovlivňující funkci


Od verze

9.5

Popis

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 nebo dotaz v databázi 602SQL

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 nebo dotaz zpřístupněný přes ODBC

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.

Soubor v některém z podporovaných formátů

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).

Externí rozhraní

Pro PHP existuje funkce wb_data_transport, pro CDK (Delphi) třída TSQL602DataTransport.



Návratová hodnota

Funkce vrací TRUE při úspěchu a FALSE při chybě.

Viz