|
![]() | wb_import_file | ![]() | Rozhraní PHP | Informace o kurzoru | ![]() |
Funkce slouží k hromadnému přenášení dat mezi 602SQL servery, ODBC zdroji dat a soubory v různých formátech.
Popis přenosu je obsažen v objektu move_descr_obj_name. Pokud move_descr_obj_name je zadán (není NULL), pak funkce přečte tento popis z databáze připojené pomocí identifikátoru spojení na databázi connection. Ú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.
Parametry src_conn a trg_conn 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.
Pokud move_descr_obj_name je NULL, pak funkce vytvoří na základě předaných parametrů implicitní návrh přenosu, stejně jak jej vytváří interaktivní návrhář. Hodnota parametru connection se pak ignoruje.
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 v 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_conn nebo trg_conn je pak identifikátor spojení na 602SQL server (tj. výsledek funkce wb_connect nebo wb_pconnect), 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. 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_conn nebo trg_conn je pak spojení na ODBC zdroj dat popsané:
Je-li předáno pole, tak funkce wb_data_transport otevře spojení na ODBC zdroj dat, provede přenos a spojení zavře. Při předání otevřeného spojení na ODBC zdroj dat toto spojení není touto funkcí zavřeno (zavírá se pomocí wb_odbc_disconnect).
Parametrem src_schema nebo trg_schema je případné schéma nebo jiný kvalifikátor jmen 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_conn a src_schema nebo trg_conn 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 |
Pro funkci platí veškerá omezení jako pro Data_transport.
TRUE v případě úspěšně provedeného přenosu, nebo FALSE v případě výskytu chyby.
Přenos dat z ODBC zdroje dat do tabulky v 602SQL (1. způsob - mám vytvořený objekt typu přenos (zde nazvaný MySQLODBC_602tab) - lepší v tom, že lze předem přenos vyzkoušet ve Vývojovém prostředí):
$conn=wb_connect($cfg_dbconn_database,$cfg_dbconn_application,$cfg_dbconn_username,$cfg_dbconn_password) or die; $odbc_resource=wb_odbc_connect("MySQL test","uzivatel","heslo") or die("MySQL odbc connect failed"); $vysledek = wb_data_transport( $conn, "MySQLODBC_602tab", $odbc_resource, $conn, "", "", "", "", NULL, NULL, -1, -1, -1); if( $vysledek==FALSE ) { /* ošetření chyby */ } else { echo "přenos proběhl bez chyb\n"; }; wb_odbc_disconnect($odbc_resource);
Přenos dat z ODBC zdroje dat do tabulky v 602SQL (2. způsob - nemusím mít vytvořený objekt typu přenos, ale pokud přenos neprojde, obtížně se hledá chyba):
$conn=wb_connect($cfg_dbconn_database,$cfg_dbconn_application,$cfg_dbconn_username,$cfg_dbconn_password) or die; $vysledek = wb_data_transport( $conn, NULL, array("dsn" => "nazev_odbc_zdroje_dat","uid" => "uzivatel","pwd" => "heslo"), $conn, "odbc_schema", "aplikace", "odbc_tabulka", "tabulka", IMPEXP_FORMAT_ODBC, IMPEXP_FORMAT_TABLE, -1, -1, 1); if( $vysledek==FALSE ) { /* ošetření chyby */ } else { echo "přenos proběhl bez chyb\n"; }
![]() | wb_import_file | ![]() | Rozhraní PHP | Informace o kurzoru | ![]() |