Vytváření databází na CD ROM a jejich instalace u uživatele

WinBase602 počínaje verzí 5.1 umožňuje vytváření databází uložených na CD ROM. Tyto databáze zpřístupňují uživateli po instalaci značné množství dat, aniž by tato data musela být zkopírována na pevný disk. Podstatnou vlastností takto vytvořených databází je, je uživatel může v omezeném rozsahu obsah databáze editovat, přičemž na pevný disk se zaznamenají pouze změny v datech, nikoli celá databáze.

Níže je popsán postup, jak vytvořit databázi na CD ROM a jak zajistit její instalaci. Stejný postup lze použít pro zřízení sdílené referenční databáze umístěné na síťovém disku bez práva zápisu.

Princip práce s databází uloženou na CD ROM
Uživatel, který si instaluje databází z CD ROM, pracuje s databázovým souborem rozděleným do dvou částí. První část je umístěna na CD ROM, obsahuje základ dat z databáze a (přirozeně) není editovatelná. Druhá část je umístěna za uživatelově pevném disku, vznikne při instalaci databáze, a zapisují se do ní změny, které uživatel v databázi případně provede. Tato část musí existovat i v případě, že uživatel nechce provádět žádné změny v databázi.

Změny, které uživatel může v databází provádět, jsou omezeny interním limitem, který není jednoduše kvantifikovatelný. Vývojářům aplikací doporučujeme, aby se řídili tímto pravidlem: Bez omezení lze zakládat nové objekty a plnit nově založené tabulky daty. Editovat obsah existujících tabulek z CD ROM by mělo být dovoleno pouze výjimečně. Doporučujeme se vyhnout editaci tabulek z CD ROM tak, že aplikace vytvoří (např. při prvním spuštění) vlastní tabulku, jejiž záznamy budou svázány vztahem 1:1 se záznamy v určité tabulce na CD ROM. Editovat se pak budou pouze záznamy v nově vytvořené tabulce.

WinBase602 musí být na uživatelově počítači buď instalována předem (normálním instalačním programem WinBase602), nebo se bude při každém spuštění číst z CD ROM. Druhý případ má tyto omezující vlastnosti:
•	WinBase602 z CD ROM se spouští znatelně pomaleji než když je instalovaná na pevném disku;
•	na počítači s nedostatkem paměti může WinBase602 z CD ROM reagovat pomaleji i za běhu;
•	použití WinBase602 z CD ROM předpokládá, že na uživatelově počítači je instalováno ODBC.
WinBase602 z CD ROM se chová jako provozní systém, umožňuje tedy pracovat s obsahem databáze, ale neumožňuje vyvíjet aplikace.

Aplikace z databáze na CD ROM se na uživatelově počítači spouští pomocí svého startovního objektu, k němuž během instalace vznikne zástupce. Aplikace může mít kód programu v externím souboru a může mít vlastní soubor nápověd. Lze vytvořit více zástupců spouštějících více různých aplikací ze stejné databáze.

Příprava databáze pro CD ROM
Předpokládejme, že autor má hotovou databázovou aplikaci určenou k šíření na CD ROM. Aplikace je naplněna daty. 
1.	V aplikaci se označí její startovní objekt.
2.	Pokud ve stejném databázovém souboru jsou ještě jiné aplikace, které na CD ROM nepatří, nebo pokud se databázový soubor skládá z více než jedné části, pak:
•	aplikace se exportuje (včetně dat), 
•	založí se nový databázový soubor a 
•	aplikace se do něj importuje.
	V opačném případě doporučujeme aplikaci exportovat také, za účelem zálohování dat.
3.	Ve vývojovém prostředí připojeném na databázi, určenou k převedení na CD ROM, se z menu Nástroje / Server příkazem Provozní parametry otevře dialogové okno.
4.	Pokud v databázovém souboru je mnoho volných clusterů, lze velikost souboru zmenšit stiskem tlačítka Zkompaktnit.
5.	Ve stejném dialogu stiskem tlačítka Připravit pro CD ROM se databáze převede do needitovatelné podoby. Od tohoto okamžiku není dovoleno do databáze zapisovat.
6.	Dialog a vývojové prostředí se uzavře a server se ukončí. 
Nad stejnou databází se server nesmí více spouštět. Popsaným postupem vznikne soubor WB5.FIL určený k přenesení na CD ROM.

Příprava obsahu CD ROM
V další fázi se vytvoří adresář, který bude obsahovat vše, co má být přeneseno na CD ROM. Tento adresář může obsahovat podadresáře, aby jeho obsah byl přehlednější. Do adresáře (případně jeho podadresářů) umístíte tyto soubory:
1.	Databázový soubor WB5.FIL vytvořený v předchozí fázi.
2.	Soubor SETUPDB.EXE z WinBase602 SDK (tento soubor lze libovolně přejmenovat). Tento program provede na uživatelském počítači instalaci databáze.
3.	Soubor SETUPDB.INI s obsahem popisujícím CD ROM a instalaci databáze u uživatele (viz dále).
4.	Soubor obsahující ikonu, která se použije v zástupci vytvořeném na počítači uživatele pro spouštění databázové aplikace. (Souborů může být více, pokud se bude vytvářet více zástupců různých aplikací)
5.	Soubor resp. soubory s uživatelskou nápovědou k aplikaci.
6.	Soubor resp. soubory s přeloženým kódem těch aplikací, z nichž byl odstraněn zdrojový program.
7.	Programy a knihovny WinBase602, pokud aplikace má být provozována na uživatelově počítači bez instalace WinBase602.
Takto připravený adresář se dá využít pro pokusné instalace databáze před jejím vypálením do CD ROM. Lze tak například ověřit správnost obsahu souboru SETUPDB.INI .

Obsah souboru SETUPDB.INI
SETUPDB.INI je textový soubor ve formátu INI-souborů pro Windows. Tento soubor řídí činnost instalačního programu SETUPDB.EXE. Obsahuje sekce WinBase602, Shortcut1 a případné další sekce Shortcut2, Shortcut3 atd. 

V sekci WinBase602 jsou tyto údaje:

•	InitialMessage=text v úvodním okně
Tento údaj je nepovinný. Pokud je uveden, pak se po spuštění programu SETUPDB.EXE objeví úvodní okno obsahující zadaný text a dvě tlačítka: OK a Storno. Stisk tlačítka Storno ukončí program, stisk OK umožní pokračování instalace. Pokud údaj není zadán, k instalaci se přistoupí ihned po spuštění programu.

•	RegisterInstallation=adresář obsahující programy WinBase602 na CD ROM
Tento údaj je nepovinný. Pokud není uveden, pak se na uživatelském počítači bude hledat existující instalace WinBase602 aktuální verze, a pokud se nenajde, instalace skončí neúspěšně. Adresář se uvádí bez úvodního písmene označujícího diskovou jednotu a bez následující dvojtečky.

•	DatabasePath=adresář obsahující databázový soubor WB5.FIL na CD ROM
Tento údaj je povinný. Adresář se uvádí bez úvodního písmene označujícího diskovou jednotu a bez následující dvojtečky.

•	DatabaseName=jméno databáze
Tento údaj je povinný. Pod tímto jménem se databáze zaregistruje na uživatelově počítači

•	PrivateDatabaseDir=plná cesta k adresáři pro editovatelnou část databázového souboru
Tento údaj je nepovinný. Umožňuje zadat umístění a jméno adresáře, který se během instalace uživateli nabídne pro umístění editovatelné části databázového souboru. Pokud není uveden, nabídne se běžný adresář.

•	FinalMsg=text závěrečné zprávy o úspěšné instalaci
Tento údaj je nepovinný. Není-li uveden, zobrazí se na závěr úspěšné instalace zpráva “Instalace databáze proběhla úspěšně”

Každá sekce Shortcutx popisuje jednoho zástupce, který se má vytvořit na uživatelském počítači. Zástupci odpovídají aplikacím v databázovém souboru. Sekce musí být očíslovány sekvenčně od 1. V sekcích jsou tyto údaje:

•	ShortcutApplication=jméno aplikace
Tento údaj je povinný. Specifikuje jméno databázové aplikace, která se má otevřít v databázi, a jejíž startovní objekt se má spustit.

•	ShortcutCaption=popiska zástupce
Tento údaj je nepovinný. Specifikuje název zástupce. Pokud není zadán, bude název zástupce stejný, jako jméno aplikace. 

•	ShortcutFolder=jméno položky v menu Start / Programy, do níž se zástupce umístí
Tento údaj je nepovinný. Specifikuje umístění vytvářeného zástupce. Může označovat existující položku, do níž se zástupce přidá, nebo novou položku, která se při instalaci vytvoří. Pokud údaj není uveden, zástupce se vytvoří v položce Database.

•	ShortcutIcon=cesta a jméno souboru s ikonou zástupce
Tento údaj je nepovinný. Obsahuje adresář a jméno souboru na CD ROM, v němž je soubor s ikonou zástupce. Adresář se uvádí bez úvodního písmene označujícího diskovou jednotu a bez následující dvojtečky. Pokud údaj není uveden, zástupce bude obsahovat ikonu WinBase602.

•	ApplicationHelp=cesta a jméno souboru s aplikační nápovědou (soubor HLP)
Tento údaj je nepovinný. Obsahuje adresář a jméno souboru na CD ROM, v němž je soubor s nápovědou k aplikaci. Adresář se uvádí bez úvodního písmene označujícího diskovou jednotu a bez následující dvojtečky. Je-li tento údaj uveden, soubor se zkopíruje do adresáře, v němž je instalována WinBase602, kde jej běžící aplikace najde. Jsou-li na CD ROM programy WinBase602, pak soubor s nápovědou doporučujeme umístit do stejného adresáře, aby mohl být nalezen také při práci programů z CD ROM.

•	ApplicationCode=cesta a jméno souboru s přeloženým kódem aplikace (soubor EXX)
Tento údaj je nepovinný. Obsahuje adresář a jméno souboru na CD ROM, v němž je soubor s přeloženým kódem aplikace. Adresář se uvádí bez úvodního písmene označujícího diskovou jednotu a bez následující dvojtečky. Je-li tento údaj uveden, soubor se zkopíruje do adresáře zvoleného pro editovatelnou část databázového souboru a odkaz na něj se vloží do příkazové řádky zástupce. Tento údaj se využije v případě, že autor aplikace chce utajit zdrojový text programu a odstranil jej z aplikace.

•	DisableLogin=1, pokud se uživatel má přihlásit jako anonymní, nebo 0 pro normální přihlášení
Tento údaj je nepovinný. Pokud není uveden nebo pokud má hodnotu 0, uživatel se bude do databáze normálně přihlašovat svým jménem a heslem. Pokud má hodnotu 1, pak se přihlašovací dialog neobjeví a uživatel bude automaticky přihlášen jako anonymní.

Příklad obsahu souboru SETUPDB.INI:
[WinBase602]
InitialMessage=Tato instalace Vám umožní přístup k databázi motýlů na CD ROM. Chcete pokračovat?
RegisterInstallation=WBINST
DatabasePath=DATABASE
DatabaseName=CDmotyli
PrivateDatabaseDir=c:\motyli
FinalMsg=Instalace proběhla úspěšně. V menu Start najděte složku Motýli a spusťte Katalog motýlu
[Shortcut1]
ShortcutApplication=motyli
ShortcutCaption=Katalog motýlu
ShortcutFolder=Motýli
ShortcutIcon=IKONY\MOTYL.ICO
ApplicationHelp=WBINST\MOTYLI.HLP
ApplicationCode=KOD\MOTYLI.EXX
DisableLogin=1

Tento soubor zpřístupní databázi jménem CDmotyli uloženou na CD ROM v adresáři DATABASE. Vytvoří jednoho zástupce jménem Katalog motýlů umístěného v položce Motýli v menu Start / Programy. Zástupce bude mít ikonu umístěnou na CD ROM v souboru IKONY\MOTYL.ICO . Zástupce bude spouštět startovní objekt aplikace motyli, bez nutnosti přihlašovat se k databázi. Kód aplikace je v souboru MOTYLI.EXX, nápověda k aplikaci v souboru MOTYLI.HLP.

Obsah CD ROM odpovídající tomuto souboru:
Kořenový adresář:
•	SETUPDB.EXE
•	SETUPDB.INI (uvedený výše)
Subadresář WBINST:
•	programy a knihovny tvořící instalaci WinBase602, tedy: WB602.EXE, WBSERVER.EXE, WBKERNEL.DLL, WBPREZEN.DLL, WBVIEWED.DLL, WBED.DLL a INSTSERV.DLL
•	nápovědný soubor MOTYLI.HLP
Subadresář DATABASE:
•	Soubor WB5.FIL obsahující aplikaci MOTYLI vytvořený postupem popsaným výše
Subadresář IKONY:
•	Soubor MOTYL.ICO obsahující ikonu, která se použije v zástupci spouštějícím aplikaci.
Subadresář KOD
•	Soubor MOTYLI.EXX s přeloženým kódem aplikace.

Postup instalace databáze na uživatelském počítači
Uživatel, který získá CD ROM a chce si zpřístupnit databází, postupuje takto:
1.	Vloží CD ROM do jednotky na svém počítači.
2.	Spustí program SETUPDB.EXE.
3.	Během instalace zvolí adresář, v němž na jeho počítači bude umístěna editovatelná část databázového souboru. Tento soubor vznikne až při prvním spuštění databáze.
Po instalaci se v menu Start / Programy objeví v některé složce zástupce nebo zástupci sloužící ke spouštění databázových aplikací.

Pokud se databáze instaluje z CD ROM umístěného na jiném počítači v síti nebo ze síťového disku, není nutno diskovou jednotu mapovat. K CD ROM nebo disku lze přistupovat pomocí dlouhého jména ve tvaru:
 \\jméno_počítače\jmého_share\adresáře\soubor, 
např.: 
\\NWSERVER\PUBLIC\DATABASE\SETUPDB.EXE . 

Instalační program SETUPDB.EXE pracuje takto:
1.	Vyhledá soubor SETUPDB.INI ve stejném adresáři, v němž se sám nachází, přečte a verifikuje jeho obsah. V případě, že chybí některý povinný údaj nebo odkazovaný soubor, program vydá chybové hlášení a skončí.
2.	Pokud je uveden údaj InitialMessage, zobrazí úvodní okno a umožní uživatel volit buď ukončení instalace nebo její pokračování.
3.	Požádá uživatele, aby vybral na svém počítači adresář, v němž bude umístěna editovatelná část databázového souboru. Pokud je uveden údaj PrivateDatabaseDir, pak tento adresář nabídne jako výchozí.
4.	Vyhledá na uživatelském počítači instalaci aktuální verzi WinBase602, a pokud ji nenajde, zaregistruje instalaci v adresáři RegisterInstallation. Není-li tento údaj uveden, skončí s chybou. (Programy WinBase602 se v žádném případě nekopírují na počítač uživatele - budou se číst se při každém použití z CD ROM a předpokládají, že na počítači mají k dispozici instalované ODBC. Pokud je jejich provoz z CD ROM příliš pomalý nebo pokud na uživatelově počítači není instalováno ODBC, je nutno provést normální instalaci WinBase602.)
5.	Zaregistruje databázi v adresáři DatabasePath a její pokračování v adresáři zvoleném uživatelem, vše pod jménem DatabaseName.
6.	Pro každou sekci Shortcutx vytvoří zástupce s ikonou ShortcutIcon a textem ShortcutCaption v položce ShortcutFolder. Zástupce spouští startovní objekt aplikace ShortcutApplication. Je-li uvedeno DisableLogin=1, pak zástupce obsahuje příznak, že se má přeskočit přihlašování do databáze. Soubor s ikonou se překopíruje do adresáře zvoleného v bodě 3. Jsou-li uvedeny soubory s kódem aplikace nebo s nápovědou, zkopíruje je na odpovídající místa.
7.	Pokud instalace doběhne úspěšně do konce, zobrazí se v dialogovém okně text FinalMsg nebo standardní text, není-li tento údaj uveden.