Move_data

Internφ programovacφ jazykC/C++Pascal

function Move_data(move_descr_obj : tobjnum; var inpname : string; inpobj : tobjnum; var outname : string; inpformat, outformat, inpcode, outcode: Integer; silent : Boolean) : Boolean;
BOOL Move_data(cdp_t cdp, tobjnum move_descr_obj, const char * inpname, tobjnum inpobj, const char * outname, int inpformat, int outformat, int inpcode, int outcode, BOOL silent);
function Move_data(cdp : cdp_t; move_descr_obj : tobjnum; inpname : PChar; inpobj : tobjnum; outname : PChar; inpformat, outformat, inpcode, outcode: Integer; silent : Boolean) : Boolean;

Parametry

move_descr_obj implicitnφ nßvrh p°enosu
inpname jmΘno vstupnφho souboru, tabulky nebo dotazu
inpobj Φφslo otev°enΘho kurzoru nebo objektu ve WinBase602
outname jmΘno v²stupnφho souboru, tabulky nebo dotazu
inpformat vstupnφ formßt dat
outformat v²stupnφ formßt dat
inpcode k≤dovßnφ ΦeÜtiny ve vstupnφm souboru
outcode k≤dovßnφ ΦeÜtiny ve v²stupnφm souboru
silent urΦenφ, zda se majφ generovat chybovß hlßÜenφ na obrazovku.
cdp kontextovß prom∞nnß klienta

Od verze:

5.0

Popis

Funkce Move_data provßdφ p°enos dat. Lze jφ nahradit vÜechny p°edchozφ funkce pro exporty a importy dat.

Pokud move_descr_obj je -1, pak se vytvo°φ implicitnφ nßvrh p°enosu na zßklad∞ ostatnφch parametr∙, jinak se p°eΦte nßvrh p°enosu z databßze a pozm∞nφ se podle hodnot ostatnφch parametr∙. ╚φslo popisu lze zφskat funkcφ Find_object.

Zdroj a cφl dat jsou popsßny sv²m formßtem (inpformat, outformat), a podle svΘho formßtu (v parametrech inpname, outname) takΘ jmΘnem souboru (nap°. FAKTURY.DBF, PENALE.CSV apod. ) nebo jmΘnem tabulky Φi dotazu, p°φpadn∞ Φφslem otev°enΘho kurzoru nebo objektu ve WinBase602 (inpobj). K≤dovßnφm ΦeÜtiny ve vstupnφm a v²stupnφm souboru se zadß v parametrech inpcode a outcode. Data ulo₧enß v databßzi majφ v₧dy k≤d 0. Pokud n∞kter² parametr nechcete zadat, uve∩te pro Φφseln² parametr hodnotu -1, pro °et∞zcov² parametr prßzdn² °et∞zec.

Parametr silent °φkß, zda se majφ generovat chybovß hlßÜenφ na obrazovku, vΦetn∞ varovßnφ p°i p°epsßnφ ji₧ existujφcφho souboru.

Soubor, z n∞ho₧ se majφ Φφst (nebo do n∞ho₧ se majφ zapisovat) data nesmφ b²t otev°en (nap°. funkcφ Reset).

Je-li tato funkce zavolßna uvnit° transakce, bude tato transakce ukonΦena. Efekt funkce nelze odvolat pomocφ Roll_back.

P°enos dat lze nastavovat i ruΦn∞ pomocφ nßvrhß°e p°enos∙. Okno nßvrhß°e se otev°e funkcφ Edit_impexp.

Formßt se zadßvß t∞mito konstantami:

IMPEXP_FORMAT_WINBASE 0 soubor ve vnit°nφm formßtu WinBase602 (TDT)
IMPEXP_FORMAT_TEXT_COLUMNS 1 textov² soubor ve sloupcovΘm formßtu
IMPEXP_FORMAT_TEXT_CSV 2 textov² soubor ve formßtu CSV
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 p°ipojena p°es ODBC
IMPEXP_FORMAT_CURSOR 6 pevn² kurzor ve WinBase602 (pouze pro vstup)
IMPEXP_FORMAT_TABLE 10 tabulka ve WinBase602 (pro vstup takΘ prom∞nn² kurzor)
IMPEXP_FORMAT_TABLE_REIND 11 tabulka ve WinBase602, indexy se m∞nφ a₧ po p°enosu

P°i exportu z prom∞nnΘho kurzoru (10) lze pou₧φt pouze vnit°nφ formßt WinBase (0). Pro export z prom∞nnΘho kurzoru do jinΘho formßtu pou₧ijte obrat uveden² v p°φkladech.

P°i importu z vnit°nφho formßtu (0) nelze vytvo°it novou tabulku (10 nebo 11).

K≤dovßnφ ΦeÜtiny se zadßvß t∞mito konstantami:

0 EE Win, k≤dovß strßnka 1250 , vnit°nφ ΦeÜtina Windows
1 k≤d Kamenick²ch, KEYBCS2;
2 k≤d KOI8-CS;
3 k≤d LATIN 2 pou₧it² v Text602;
4 k≤dovß strßnka 852 z MS DOSu 5.0, LATIN 2;
5 k≤d Windows ANSI.

Hodnota funkce

Funkce vracφ FALSE p°i chyb∞.

P°φklad 1

import z DBF souboru:

ss := "D:\DBFS\*.DBF";
if Select_file(0,ss) then
  Move_data(-1,ss,-1,'FAKT',4,10,4,0,false);

P°φklad 2

export dat z prom∞nnΘho dotazu do souboru ve vnit°nφm formßtu:

Open_sql_cursor(cc, "select * from TAB1 where...");
if not Move_data(-1,"",cc,"c:\dotaz.tdt",10,0,0,0,false) then Signalize;

P°φklad 3

export dat z prom∞nnΘho dotazu do souboru v DBF:

str := "select * from TAB1 where...";
Open_sql_cursor(cc, str);
if Find_object("POMDOTAZ",CATEG_CURSOR,pomdotnum) then 
  Insert_object("POMDOTAZ",CATEG_CURSOR,pomdotnum);
OBJTAB[pomdotnum].defin[0,StrLength(str)] := str;  
OBJTAB[pomdotnum].defin# := StrLength(str);
if not Move_data(-1,"POMDOTAZ",-1,"c:\dotaz.dbf",6,4,0,0,false) then Signalize;

P°φklad 4

export s p°ipraven²m p°enosem:

if Find_object("EXP_DBF",CATEG_PGMSRC,prennum) then Signalize
else 
  if not Move_data(prennum,"",-1,"",-1,-1,-1,-1,true) then Signalize;

Viz