1. EXPORT


Stavajicí stav:

Databáze se skládá ze dvou na sobě nezávyslích tabulek - adres, adrk. Funguje pod Microsoft Visual FoxPro 5.0.

Struktura:
- adres: tabulka knihovních osobností, pouze sloupce datového typu char
- adrk: tabulka knihoven, sloupce ve formatu char a MEMO
závěr: Tabulky nemají žádná omezení, ani žádný primární či jiný klíč

Možnosti exportu:
1. ODBC
2. vygenerovat obsah tabulek jako HTML text

ad 1.) Tato varianta se jevila jako nejschůdnější. MS Visual FoxPro obsahuje podporu pro export pres ODBC s pomoci upziping wizardu.
řešení: Tabulky se nepovedlo exportovat. Nástroj VFP si nedovedl poradit s jednoducou podobou tabulky, nedalo se zabranit, aby vygenerovany prikaz CREATE TABLE nepřidával k jednotlivím sloupcum tabulky constraint NOT NULL.
závěr: Tento způsob je pro dané tabulky nevhodný. Je možné použit vygenerované příkazy CREATE TABLE a po upravě vytvořit novou dávku.

Dávka ct.sql:
/* Create table 'adres' */

CREATE TABLE adres (jmeno char(15), prijmeni char(30), titul char(20), narozen char(10), misto_nar char(35), funkce char(80), nazev_prac char(60), ulice char(30), mesto char(20), psc char(6), telefon char(50), fax char(50), email char(50), vzdelani char(220), praxe char(220), staze char(220), publikace char(254), clenstvi char(254), zajmy char(220), cizi_jazyk char(140));

/* Create table 'adrk' */

CREATE TABLE adrk (okres char(30), kraj char(20), nazev char(150), adresa char(200), ulice char(150), mesto char(75), psc char(6), telefon char(220), fax char(40), email char(40), url char(40), reditel char(60), vedouci char(60), zrizovatel char(120), clenstvi char(100), spoluprace char(200), pocet_prac char(40), pristupnos char(110), specializa char(254), inf_fond char(50), odeb_titul char(30), zahran_tit char(20), pisemne char(130), obrazove char(130), zvukove char(90), audioviz char(30), mikrodokum char(30), poc_soubor char(40), prog_vyb varchar2(2000), databaze varchar2(2000), edit_cinnochar(254), prac_knih varchar2(2000), sit_poboce char(160), reg_funkce char(254), sluzby varchar2(2000), plac_sluz char(254));

ad 2.) Save as HTML je vestavena funkce VFP. Vygeneruje obsah tabulek jako HTML stránku, kde jednotlivé věty tvoří řádky a sloupce jsou hosnoty jednotlivých položek věty. Velkou vyhodou je, že se zbavim nestandartního datového typu MEMO, ktery je uveden jako řetězec znaků.

řešení: 1. vygenerování HTML kódu
2. přeformátování do sql dávky
3. debugging


ad 1.) dlouho trvající proces probehl bez problémů u obou tabulek
ad 2.) uvedu postup pro tabulku adrk, postup u adres je podobný
vstup: adrk.htm

cstocs 1250 il2 < adrk.htm > adrkcz.htm

vim adrkcz.htm
	:1,$ s/ / /g
	:1,$ s/<//g
	:1,$ s/–/-/g
	:1,$ s/
//g :1,$ s//'/g :1,$ s/<\/td>/',/g :1,$ s//INSERT INTO adrk VALUES\(/g echo `cat adrk.txt` > adrln.txt vim adrln.txt :1, $ s/, <\/tr>/);\r/g :w adrk.sql výstup: adrk.sql

ad 3.) dávka adres.sql je téměř funkční, vyskytla se pouze chyba s ampersandem, ktery oracle povazuje jake definátor proměnné. Odstraníme dodatečně ( :1,$ s/\&/and/g ). U tabulky adrk se vyskytli ptoblemy u tří vět s příliš dlouhou délkou řádku.
Input truncated to 2499 characters
SP2-0027: Input is too long (> 2499 characters) - line ignored
SP2-0042: unknown command beginning "udovna ruk..." - rest of line ignored.

Input truncated to 2499 characters
SP2-0027: Input is too long (> 2499 characters) - line ignored
  1* INSERT INTO adrk VALUES( 'Znojmo', 'Jihomoravský', 'Městská knihovna', ', Masarykovo nám. 35',
'nám. T.G.Masaryka 35', 'Moravský Krumlov', '672 01', '0621/322252', ' ', ' ', ' ', 'Ludmila Přikrylová',
'Martina Nováková', 'Město Moravský Krumlov', ' ', ' ', '3,5', 'veřejně přístupná', ' ', '20 414', '32', ' ',
' ', ' ', ' ', ' ', ' ', ' ', 'LANius', ' ', ' ', 'půjčovní doba: Út-Pá 8.45-16.30, provozní doba: Po 7-14.45,
Út-Pá 7-16.30', ' ', ' ', 'výpůjční, MVS', 'kopírování')ční přednáąky', 'reprografické, reąerąní')

[ Content ] [ P003 ] [ P063 ] [ Main Page ]
Last updated:
© Copyright Jan Martinec