Umíme to s Delphi: 87. díl – jak zprovoznit BDE aplikaci na počítači, kde není BDE

Přestože je databázová platforma BDE označována za zastaralou, čtenáři reagovali na články o BDE mnoha dotazy a připomínkami. V dnešním článku se pokusím odpovědět na první a nejdůležitější otázku související s praktickým provozem a používáním platformy BDE: jak provozovat BDE aplikaci na počítač, na němž není, nikdy nebylo a nebude Delphi?
Firma Borland i řada odborníků v mnohých diskusích označuje technologii BDE za zastaralou, případně přímo za odmítnutou či zavrženou (známé deprecated). Jak už to u zastaralých technologií bývá, uživatelé se takovými doporučeními neřídí a tvrdohlavě zastaralé technologie používají.

A nelze se jim divit. Napíšete-li jednou aplikaci, která funguje a naučíte-li se jednou technologii, která vám vyhovuje, neexistuje absolutně žádný důvod na ni zapomenout a začít se učit jinou jen proto, že tu starou kdosi přestal doporučovat. Je pravdou, že BDE nemá příliš velký výkon; je pravdou, že existuje mnoho nových možností, jak přistupovat k databázi; je pravda, že nové databázové přístupy mají řadu výhod před BDE – no a co? Pokud pro vaše účely BDE postačuje a pokud nepociťujete výkonnostní strop a pokud jste dosud nezjistili, že potřebujete využívat něco, co BDE prostě neumí, používejte BDE klidně dál. V dnešním článku se vám pokusím pomoci několika praktickými radami a doporučeními.

Lze provozovat aplikaci používající BDE na počítači bez Delphi?

Častý dotaz uživatelů zní, zda lze provozovat aplikaci, která pracuje s BDE, na počítači, kde není, nikdy nebylo a nikdy patrně nebude Delphi. Tento dotaz je zcela opodstatněný: je příjemné, že aplikace funguje na počítači, kde probíhá vývoj; od zákazníka ovšem nelze očekávat, že bude nadšen z instalace Delphi jen proto, aby si mohl spustit databázi svých videokazet.

Řešení samozřejmě existuje, ale musíme vzít na vědomost některé komplikace. Předně – jak bylo uvedeno v jednom z předchozích článků, provozujeme-li databázovou aplikaci, nevyhneme se instalaci nějakého databázového stroje (serveru, chcete-li). Používáme-li BDE, je instalace Borland Database Engine nutností. I když při práci s BDE vidíme, jak se vytvářejí fyzické databázové soubory (obsahující jednotlivé tabulky), neznamená to, že by vytvořená aplikace dokázala k těmto souborům přímo přistupovat: data z těchto souborů poskytuje naší aplikaci zásadně databázový stroj BDE. Proto je nutné, aby na cílovém počítači tento stroj běžel, protože aplikace sama si data ze souborů nedokáže „vytáhnout“.

Bylo by ovšem velmi nešťastné dodat uživateli novou aplikaci a na druhém CD instalaci BDE a poradit mu, že pokud chce používat aplikaci, musí si sám nainstalovat a nakonfigurovat BDE. Naštěstí si můžeme pomoci nám již velmi dobře známým nástrojem Install Shield Express. V následujících odstavcích společně vytvoříme instalační balík pro aplikaci používající BDE. Uvidíte, že přes několik dílčích nástrah nebude celý proces nijak neřešitelný.

Tvorba instalačních balíků pro databázové aplikace je malinko náročnější než tvorba běžných instalací, neboť musíme zajistit, aby na cílovém počítači běžela nejen naše aplikace, ale také potřebná databáze, která nám dodává data.

V následujících odstavcích předpokládám, že je vám dobře známý postup tvorby instalačního balíku pomocí nástroje Install Shield Express. Pokud by tomu tak nebylo, doporučuji nejprve ke čtení předchozí dva díly seriálu – obsahují podrobný popis jednotlivých kroků při tvorbě instalačního balíku za použití zmíněného nástroje. V tomto článku si pouze ukážeme, co vše je potřeba udělat navíc naproti postupu pro běžné (tedy nedatabázové) aplikace.

Nejprve si tedy připravte nějakou aplikaci, která využívá BDE (několik jsme jich společně vytvářeli v předchozích dílech seriálu). Pak běžným způsobem spusťte Install Shield Express a vytvořte nový instalační balík (návod viz 85. díl seriálu).

Nyní procházejte jednotlivými kroky a nastavujte potřebné parametry podle svých potřeb a podle potřeb aplikace, jejíž instalační balík vytváříte. Podrobnosti o jednotlivých činnostech a krocích jsou uvedeny v předchozích dvou dílech seriálu.

Zastavíme se společně jen u kroků, které vyžadují zvýšenou pozornost z hlediska databází, především BDE.

Files

První takovou zastávku provedeme u kroku Files. Zde vybíráme soubory, které se mají stát součástí instalačního balíku. V případě, že se jedná o databázovou aplikaci, musíme v tomto kroku označit i soubory obsahující databázové údaje (v závislosti na používané databázové platformě). V případě BDE tedy musíte nalézt soubory reprezentující příslušnou databázi a přesunout je také do instalace.

Objects and Merge Modules

V tomto kroku přidáváme do instalace nejrůznější rozšiřující moduly, s jejichž pomocí zvyšujeme funkcionalitu aplikace a instalace. Často zde třeba vybíráme nejrůznější běhové knihovny a další moduly.

Jakmile do kroku Objects and Merge Modules vstoupíte, spatříte seznam připojitelných modulů, které jsou v daném okamžiku k dispoozici.

V seznamu připojitelných modulů se objeví všechny moduly, které má InstallShield Express ve svém podadresáři Modules (případně ještě v podadresáři i386). Z těchto modulů je možné vybrat všechny požadované; některé disponují svým vlastním konfiguračním nástrojem pro nastavení potřebných vlastností (např. moduly pro Access 97 nebo Access 2000), konfiguraci jiných je možné spustit ručně klepnutím pravým tlačítkem a zvolením Configure.

Je však s podivem, že ve standardní instalaci InstallShield Express nejsou obsaženy velmi důležité moduly, např. pro práci s BDE a vůbec pro práci s databázemi v Delphi. Abychom mohli vytvořit instalační balíček pro aplikaci používající BDE, je nutné provést následující činnost:

Na instalačním CD s Delphi přejděte do adresáře "Install\program files\Borland\Delphi6\MergeModules\BaseRTL.Msm" (nebo podobného v závislosti na verzi Delphi, kterou máte k dispozici) a potřebné (nebo raději všechny – kvůli možným závislostem) moduly zkopírujte do adresáře, v němž je instalován InstallShield Express (tedy např. "C:\Program Files\InstallShield\InstallShield Express Borland Limited Edition\Modules\i386").

Je asi zbytečné dodávat, že tuto operaci musíte provést jen poprvé, při prvním použití InstallShield Express.

Nyní se přepněte zpět do InstallShield Express, klepněte někam mimo, a pak zpět na Objects/Merge Modules. Nové moduly už budou k dispozici. Chceme-li vytvořit instalační balík pro aplikaci pracující s BDE, vybereme modul BDE_ENT a zaškrtneme jeho políčko.

Zobrazí se průvodce konfigurací – BDE Designer. V úvodu je nutné vytvořit konfigurační soubor, kde bude BDE uchovávat potřebné údaje. Zvolíme např. vytvořit nový soubor a vybereme jeho umístění. Pojmenujeme jej bde.ini. Na další obrazovce nezapomeňte klepnout na Launch, aby došlo ke spuštění modulu a vytvoření potřebných konfiguračních záznamů (viz obrázek):

Po spuštění konfigurační utility musíme zvolit, který alias hodláme ve výsledné aplikaci používat. Vybereme tedy databázi, s níž pracujeme: v otevřeném dialogu klepněte na Add, rozbalte ComboBox AliasName a vyberte požadovaný alias (v našem případě např. alias Kuchyn). V dalších editačních polích se automaticky zobrazí příslušné hodnoty, viz obrázek:

Všimněte si pouze, že v sekci PATH se objeví tentýž adresář, ve kterém jsou databázové soubory umístěny nyní. Je možné, že na cílovém počítači budeme požadovat jiné umístění: v takovém případě můžete cestu například na této obrazovce ručně změnit. Problematice adresářových cest se budeme věnovat ještě později, nicméně nyní máme jednu z možností, jak cestu nastavit podle svých požadavků.

Klepněte na OK. Dojde k návratu na předchozí obrazovku; v políčku Alias je uvedena naše požadovaná databáze, tedy Kuchyn. V poli Driver nic nevybírejte a klepnutím na Close (a následným potvrzením) opusťte tuto konfigurační utilitu.

Vracíme se do BDE Designeru. Tam klepněte na tlačítko Další. Zobrazí se shrnutí zvolených parametrů. Na této obrazovce si pouze všimněte upozornění, že modul BDE, který právě přidáváme do instalace, nepodporuje komprimované instalační balíky. Musíme na to dbát na závěr celého procesu, až budeme nastavovat vlastnosti balíku. Zaškrtnutí komprese bude znamenat vytvoření nefunkčního balíku.

Nyní klepneme na Dokončit a modul BDE_ENT bude zaškrtnut. Můžeme pokračovat dalšími kroky.

Jediný problém může být nyní způsoben adresářovými cestami (viz také zmínka uvedená výše). Pokud nyní vytvoříme instalační balík, a ten následně spustíme na „čistém“ počítači, nainstaluje se vše potřebné včetně používaného databázového aliasu. Pokud se pod tímto aliasem skrývají fyzické databázové tabulky (např. používáme-li PARADOX jako typ databáze), bude počítač očekávat, že fyzické databázové soubory příslušného aliasu budou umístěny ve stejném adresáři, v jakém je nacházíme na počítači, kde probíhal vývoj.

Tento problém lze vyřešit několika způsoby. Jedním z nich je úprava cesty přímo v inicializačním souboru BDE, který byl vytvořen (např. bdemerge.ini). V něm najdeme následující text:


[Kuchyn]
Driver=PARADOX
Params=PATH:C:\!;ENABLE BCD:FALSE
BDEDriver=STANDARD

Stačí opravit cestu (v předchozím případě c:\) na požadovanou (tedy na tu, v níž budou na cílovém počítači umístěny databázové soubory). Existují samozřejmě i další způsoby: např. vložit soubory do požadovaného umístění už v kroku Files, případně využít dialogu Database Folder, jehož zobrazení lze zapnout v kroku Dialogs ve fázi Customize Setup Appearance.

V dalších krocích už není žádná „zrada“, žádné úskalí, které by bylo nutno vzít v potaz při vytváření balíku z databázové aplikace. Můžete se tedy řídit doporučeními a informacemi uvedenými v předchozích dvou dílech seriálu.

Nyní můžeme vytvořený balík směle spustit i na počítači, který nemá (a nikdy neměl) instalováno BDE.

Na závěr

Dnešní článek byl prvním ze série obsahující praktické rady k provozu databázových aplikací. V předchozích článcích jsme se zabývali především teorií databázových aplikací a způsobem jejich návrhu a implementace. Tyto činnosti tvoří ovšem jen jednu část celého databázového světa – druhá část je šíření a praktický provoz aplikací a je zřejmé, že tato ryze praktická součást je stejně důležitá jako teorie a implementace.

Dnešní článek se pokusil odpovědět na otázku, jak šířit aplikaci pracující s BDE i mezi uživatele, na jejichž počítačích BDE není. Jak bylo v článku uvedeno, nejschůdnější cestou je vytvořit instalační balík, při jeho tvorbě zaškrtnou přidání modulu pracujícího s BDE a správně nastavit potřebné parametry a adresářové cesty. Věřím, že jste dnešní článek shledali přínosným.

Za týden budeme pokračovat v nastoupeném trendu – noční můrou mnohým uživatelů BDE aplikací je soubor PDOXUSERS.NET, který je BDE automaticky vytvářen v adresáři C:\. Tento adresář je někdy pouze nešikovný, jindy zcela nepoužitelný, například v situaci, v níž nemáme přístupová práva pro zápis na disk C:. Co si s tímto souborem počít, si ukážeme za týden.

Diskuze (2) Další článek: Nová verze Mozilly Firebird 0.6 (Glendale)

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , , ,