Rozdział 28
Przygotowanie programu
instalacyjnego aplikacji
Trudno przecenić wpływ instalacji na późniejsze poprawne lub błędne działanie
aplikacji. Nawet najlepszy program może okazać się niestabilny, jeśli zostanie
niepoprawnie zainstalowany. Program instalacyjny i wrażenie jakie wywołuje na
użytkowniku pełni rolę pierwszego powitania - użytkownicy właśnie na jego
podstawie będą wyrabiać sobie pierwsze opinie o aplikacji i jej autorze. Na
szczęście Delphi oferuje praktyczne narzędzie do tworzenia programów
instalacyjnych.
Razem z
Delphi dostarczana jest specjalna wersja popularnego programu
InstallShield - InstallShield Express. Program ten umożliwia tworzenie procedur
instalacyjnych dla aplikacji, napisanych w
Delphi. Po określeniu kilku
parametrów, charakteryzujących pożądaną postać i sposób działania procedury
instalacyjnej, InstallShield automatycznie przygotowuje gotowe nośniki (dyskietki
lub dyski CD-ROM), zawierające program instalacyjny i pliki aplikacji. Mimo że
InstallShield wykonuje lwią część zadań, związanych z przygotowaniem procedury
instalacyjnej, autor aplikacji musi wykonać szereg czynności wstępnych.
Po pierwsze - organizacja
Gdy już zapadnie decyzja o udostępnieniu aplikacji użytkownikom, należy przede
wszystkim zadbać o odpowiednie zorganizowanie i uporządkowanie elementów
programu. Spośród plików, wchodzących w skład aplikacji, należy wybrać te
niezbędne dla jej działania, oraz pliki o charakterze pomocniczym. Należy ponadto
zwrócić uwagę, czy aplikacja nie korzysta z pewnych dodatkowych plików, np.
elementów systemu operacyjnego, których pewna część użytkowników może nie
mieć. Przygotowanie odpowiednio zorganizowanej listy plików pozwoli
zaoszczędzić wiele czasu podczas tworzenia dysków instalacyjnych.
Ustalenie wymagań aplikacji w zakresie oprogramowania
sieciowego
Kolejnym krokiem powinno być określenie wymagań aplikacji w zakresie
oprogramowania sieciowego. Czy aplikacja wymaga protokołu TCP/IP? Czy
830
Część IV
protokół ten jest zainstalowany na komputerze użytkownika? Czy wymagany
będzie dostęp do współużytkowanego katalogu sieciowego? Czy system
użytkownika ma niezbędne prawa dostępu do tego katalogu? Powyższe pytania
ilustrują charakter problemów, jakie należy wziąć pod uwagę przed przystąpieniem
do instalowania aplikacji.
Sterownik bazy danych, niezbędny do uruchomienia
aplikacji na komputerze użytkownika
Oprócz wspólnych elementów oprogramowania sieciowego, aplikacja może
wymagać sterownika bazy danych, dostosowanego do systemu konkretnego
producenta. Jeśli np. aplikacja korzysta z tabel, rezydujących na serwerze Sybase,
to w systemie użytkownika musi zostać zainstalowany moduł Open Client firmy
Sybase. Jeśli aplikacja wymaga dowolnego sterownika ODBC, to musi on być
zainstalowany w systemie użytkownika. Problem ten dotyczy wprawdzie tylko
aplikacji typu klient-serwer i programów, wykorzystujących ODBC, jest jednak
niezwykle istotny - bez odpowiednich sterowników aplikacja nie może działać.
Wymagania, dotyczące serwera bazy danych
Jeśli aplikacja korzysta z serwera bazy danych, to system kliencki musi mieć
odpowiednie prawa dostępu do serwera. Czy serwer już istnieje, czy też trzeba go
będzie dopiero przygotować do pracy? Czy jest to serwer lokalny, czy odległy?
Wreszcie, czy system kliencki ma własny identyfikator użytkownika, hasło i prawa
dostępu do serwera?
Przygotowanie bazy danych
Zanim system kliencki będzie mógł uzyskać dostęp do bazy danych, konieczne jest
wykonanie szeregu czynności przygotowawczych. W
przypadku systemów
współpracujących z odległym serwerem, należy ustalić, czy to administrator
serwera bazy danych musi utworzyć obiekty bazy, wymagane przez aplikację, czy
też zadanie to spada na osobę instalującą aplikację. Jeśli obiekty bazy danych ma
tworzyć autor aplikacji, to powinien on posłużyć się odpowiednimi do tego celu
środkami - programem Database Desktop, skryptem w języku SQL lub innym
narzędziem.
Jeśli aplikacja wykonuje operacje na tabelach lokalnych, to należy przygotować
kopie pustych tabel, które następnie zostaną dołączone do pakietu instalacyjnego.
W praktyce konieczne jest sporządzenie kopii roboczych tabel, używanych przy
tworzeniu aplikacji i usunięcie z nich wszelkich danych testowych.
Rozdział 28 Przygotowanie programu instalacyjnego aplikacji
831
Wymienione powyżej zagadnienia ilustrują typowe problemy, z którymi styka się
autor gotowej aplikacji przed przystąpieniem do tworzenia oryginałów dysków
instalacyjnych. Jak już wspomniano, szczególnie istotne jest właściwe
zaplanowanie instalacji. Instalowanie aplikacji do obsługi baz danych -
a szczególnie aplikacji typu klient-serwer - to trudne przedsięwzięcie, którego
powodzenie zależy w dużym stopniu od poczynionych przygotowań.
W dalszej części niniejszego rozdziału omówimy tworzenie prostego
i zaawansowanego programu instalacyjnego. W przypadku prostego programu
instalacyjnego, autor musi jedynie określić szereg parametrów, bez których
InstallShield nie będzie w stanie wygenerować odpowiedniego kodu. W części
poświęconej tworzeniu zaawansowanego programu instalacyjnego, przedstawimy
przykład umiarkowanie skomplikowanej procedury instalacyjnej, w której znajdą
zastosowanie niektóre dodatkowe opcje programu InstallShield.
W końcowej części tego rozdziału omówione zostaną zagadnienia, związane
z użyciem skryptów SQL do tworzenia obiektów bazy danych w środowisku
klient-serwer. Jeśli aplikacja nie może działać bez uprzednio przygotowanych
obiektów bazy danych, umiejętność posługiwania się skryptami SQL okaże się
niezbędna dla prawidłowego przygotowania instalacji.
Prosta procedura instalacyjna (Basic Setup)
Aby zainstalować specjalną wersję programu InstallShield, dostarczaną razem
z Delphi, należy uruchomić program instalacyjny z dysku CD-ROM Delphi.
Dostęp do tego programu uzyskać można wprost z głównego ekranu procedury
instalacyjnej Delphi, uruchamianej automatycznie po włożeniu dysku do napędu.
Po zainstalowaniu program InstallShield można uruchomić wywołując plik
wykonywalny
ISX.EXE
, standardowo umieszczany w
katalogu \
Program
Files\InstallShield\IS Express Delphi Edition
.
Przy pierwszym uruchomieniu program pyta, czy ma otworzyć istniejący projekt
czy utworzyć nowy. Należy wybrać opcję tworzenia nowego projektu -
Create
a
New Setup Project
.
Na ekranie pojawi się teraz okno dialogowe
New Project
. Należy w nim wpisać
nazwę i typ projektu, katalog, a także określić, czy w ramach projektu ma być
tworzona opcja instalacji indywidualnej (Custom Setup). W przypadku instalacji
indywidualnej końcowy użytkownik może dostosować przebieg instalacji do
własnych potrzeb, w szczególności zainstalować tylko wybrane komponenty
aplikacji.
W pierwszym przykładzie ograniczymy się do stworzenia najprostszej procedury
instalacyjnej. Należy zatem wpisać jedynie nazwę projektu (w polu
Project Name
),
832
Część IV
a następnie kliknąć przycisk
Create
, co spowoduje utworzenie nowego projektu -
zob. rysunek 29.1.
Na ekranie pojawi się teraz główne okno programu InstallShield. Widoczna lista
obejmuje dziewięć głównych etapów tworzenia programu instalacyjnego. Każdy
etap podzielony jest na szereg czynności cząstkowych. Sekwencyjne wykonanie
kolejnych czynności doprowadzi do utworzenia programu instalacyjnego.
InstallShield zaznacza czynności, które zostały już wykonane - pomaga to
zorientować się, na którym etapie znajduje się bieżący projekt. Z listy wynika, że
pierwszą czynnością po utworzeniu nowego projektu jest wprowadzenie
informacji o aplikacji (Application Information). Jest to pierwsza czynność etapu
Set the Visual Design, który decyduje o
postaci graficznej programu
instalacyjnego. Główne okno programu InstallShield przedstawiono na rysunku
29.2.
Postać graficzna procedury instalacyjnej
W pierwszym z dziewięciu etapów tworzenia programu instalacyjnego należy
wprowadzić informacje o instalowanej aplikacji i określić szereg parametrów,
decydujących o wyglądzie programu. Aby wprowadzić dane o aplikacji, m.in.
nazwę głównego pliku wykonywalnego, numer wersji, itd. należy kliknąć przycisk
Application Information
.
Rysunek 29.1.
W oknie
dialogowym New
Project określić
można parametry
nowego projektu.
Rozdział 28 Przygotowanie programu instalacyjnego aplikacji
833
Informacje o aplikacji - Application information
W sekcji
App Info
autor programu instalacyjnego wpisuje nazwę aplikacji, jej
głównego pliku wykonywalnego i numer wersji. Możliwe jest również wpisanie
nazwy firmy, jeśli w danym projekcie różni się ona od podanej przy instalacji
programu InstallShield.
W polu
Application Name InstallShield
wpisuje domyślnie nazwę projektu, podaną
wcześniej w polu
New Project
. Należy pamiętać, że wpisana tutaj nazwa stanie się
automatycznie nazwą katalogu docelowego. Dlatego niewskazane jest
wykorzystywanie pełnej długości pola, w którym można wpisać nazwę, składającą
się nawet z osiemdziesięciu znaków.
Zawartość pola
Application Executable
określa główny plik wykonywalny
aplikacji. Plik ten zostanie automatycznie dodany do grupy
Program Files
w oknie
dialogowym
Groups and Files
(pod warunkiem, że w oknie tym nie zdefiniowano
jeszcze żadnych innych grup i plików). Z kolei w oknie dialogowym
General Icon
Settings
tworzona jest odpowiednia ikona (o ile nie zdefiniowano w nim wcześniej
żadnych innych pozycji). Aby wybrać plik wykonywalny z listy należy posłużyć
się przyciskiem wielokropka, widocznym obok pola
Application Executable
.
Na tym etapie pracy nie zachodzi na ogół konieczność zmiany informacji o wersji
i firmie. Dane o aplikacji są zatem kompletne. Stronę
App Info
przedstawiono na
rysunku 29.3.
Rysunek 29.2.
Główne okno
programu
InstallShield.
834
Część IV
WSKAZÓWKA:
Okno dialogowe, zawierające stronę
App Info
, obejmuje jeszcze dwie strony -
Main
Window
i
Features
, odpowiadające kolejnym pozycjom na głównej liście
programu InstallShield. Aby uzyskać do nich dostęp nie trzeba zamykać okna
dialogowego i powracać do głównej listy opcji - wystarczy zmienić aktywną
stronę. Ta sama zasada obowiązuje w przypadku każdego z dziewięciu etapów
pracy z programem InstallShield, ujętych na głównej liście. Opcje, wchodzące
w skład każdego etapu, można wywoływać wprost z okna dialogowego.
Okno główne - Main Window
Na stronie
Main Window
autor programu instalacyjnego wpisuje tytuł jego
głównego okna, wybiera ewentualny rysunek (mapę bitową) i ustala kolor tła.
W polu
Main Title
(główny tytuł) wpisywana jest automatycznie nazwa aplikacji,
podana na stronie
App Info
. Można jednak samodzielnie wpisać inny tytuł, niosący
więcej informacji niż sama tylko nazwa projektu. Tytuł w postaci tekstu można
zastąpić rysunkiem - mapą bitową. Tytuł nie powinien być zbyt długi, gdyż
program instalacyjny wyświetli go stosunkowo dużą czcionką. Zbyt długi napis nie
zmieści się w oknie.
Jeśli wybrana zostanie opcja wyświetlania mapy bitowej (Bitmap) w miejsce
tekstu, to w polu Bitmap należy wpisać nazwę odpowiedniego pliku
BMP
. Można
również posłużyć się przyciskiem wielokropka w celu wybrania pliku z listy.
Jako kolor tła (Backgroud Color) wybierany jest domyślnie stopniowo rozjaśniany
niebieski (Dithered Blue). Można jednak wybrać inny kolor z rozwijanej listy.
W przypadku naszego przykładowego, prostego programu instalacyjnego nie
zachodzi potrzeba wprowadzania jakichkolwiek zmian na stronie
Main Window
.
Należy zatem zaakceptować wartości domyślne i przejść do następnej strony.
Stronę
Main Windows
przedstawiono na rysunku 29.4.
Rysunek 29.3.
Informacje
o aplikacji wpisuje
się na stronie App
Info.
Rozdział 28 Przygotowanie programu instalacyjnego aplikacji
835
Opcje dodatkowe - Features
Strona
Features
zawiera tylko jeden element - przełącznik, decydujący
o
utworzeniu specjalnego programu odinstalowującego aplikację. Jednym
z wymagań przyznania aplikacji oficjalnego logo zgodności z Windows 95 jest
wyposażenie jej w
automatyczną procedurę odinstalowującą. Dlatego
w większości przypadków omawiany przełącznik powinien pozostać uaktywniony.
Procedura odinstalowująca usuwa wszystkie pliki zapisane na dysku przez
program instalacyjny, a także wszelkie wpisy w rejestrze systemowym, utworzone
domyślnie przez program InstallShield. Należy jednak pamiętać, że nie będą
automatycznie usuwane wszelkie dodatkowe wpisy w rejestrze, zdefiniowane
przez autora programu instalacyjnego i aplikacji. Aby usunąć dodatkowe pozycje
rejestru należy posłużyć się opcją
Uninstall
Keys
w oknie dialogowym
Make
Registry
Changes
(zob. dalsza część rozdziału). Stronę
Features
przedstawiono na
rysunku 29.5.
Rysunek 29.4.
Strona Main
Window (Okno
główne)
w programie
InstallShield.
Rysunek 29.5.
Ta opcja decyduje
o ewentualnym
wygenerowaniu
automatycznego
programu
odinstalowującego
aplikację.
836
Część IV
Aby zachować wprowadzone informacje o aplikacji i formie graficznej programu
instalacyjnego należy kliknąć
OK
.
Opcje programu Install Shield, dotyczące Delphi
W kolejnym etapie przygotowywania programu instalacyjnego należy wybrać
wymagane przez aplikacją moduły oprogramowania, związane ze środowiskiem
Delphi. Jeśli aplikacja przeznaczona jest do obsługi bazy danych, to
najprawdopodobniej wymagała będzie zainstalowania aparatu bazy danych
Borland Database Engine. Podobnie, jeżeli aplikacja uzyskuje dostęp do odległych
serwerów, korzystając ze sterowników SQL Links firmy Borland, to oczywiście
odpowiednie sterowniki powinny znaleźć się w pakiecie instalacyjnym.
Opcje ogólne - General Options
Aby wybrać moduły, z których korzystać będzie instalowana aplikacja, należy
kliknąć przycisk
General Options
. Moduł SQL Links może być instalowany tylko
łącznie z Borland Database Engine. Stronę okna dialogowego
General Options
przedstawiono na rysunku 29.6.
Dołączanie BDE
Aby dołączyć do pakietu instalacyjnego moduł BDE należy uaktywnić odpowiedni
przełącznik. Na ekranie pojawi się drugie okno dialogowe, w którym InstallShield
pyta, czy program instalacyjny ma przeprowadzać pełną (Full) czy cząstkową
Rysunek 29.6.
W oknie
dialogowym
General Options
należy wybrać
komponenty
środowiska firmy
Borland, które
mają być
instalowane razem
z aplikacją.
Rozdział 28 Przygotowanie programu instalacyjnego aplikacji
837
(Partial) instalacje BDE. Na razie należy wybrać domyślnie proponowaną pełną
instalację i kliknąć
OK
.
Definiowanie aliasów BDE, przeznaczonych do dołączenia
Kolejne cztery okna dialogowe służą do konfigurowania aliasów BDE, które mają
być tworzone automatycznie przez program instalacyjny. Aby zapewnić
prawidłowe działanie zainstalowanej aplikacji należy zadbać o
dołączenie
wszystkich wymaganych aliasów. Aby dołączyć nowy alias należy kliknąć
przycisk
New
i wpisać nazwę w oknie dialogowym, przedstawionym na rysunku
29.7.
Aby przejść dalej należy kliknąć przycisk
OK
.
InstallShield pyta teraz, czy alias ma być instalowany do użycia zarówno z 16-
bitową, jak i 32-bitową wersją Borland Database Engine. Z reguły nie ma takiej
potrzeby, dlatego odpowiedni przełącznik można pozostawić w
stanie
nieaktywnym i kliknąć
OK
.
W trzecim kroku należy określić szczegółowe własności aliasu, który ma być
utworzony w systemie docelowym. Nazwa aliasu przenoszona jest z poprzedniego
okna dialogowego. W bieżącym oknie dialogowym należy natomiast wybrać typ
aliasu.
Jeśli alias odnosi się do tabeli lokalnej (np. typu Paradox lub dBASE), to
konieczne będzie wpisanie ścieżki dostępu do plików, zawierających dane. Należy
pamiętać, że w
ścieżce dostępu można stosować specjalne identyfikatory
katalogów, rozpoznawane przez program InstallShield. Na przykład, w przypadku
prostych programów instalacyjnych ścieżka dostępu do plików danych będzie
składała się jedynie z identyfikatora <INSTALLDIR>.
W wierszowym polu edycyjnym można określić dodatkowe parametry aliasu. Na
przykład, jeśli skorzystanie z aliasu wymaga podłączenia do odległego serwera
bazy danych, to w polu tym można wpisać nazwę serwera i identyfikator
użytkownika. Aby zdefiniować wartość parametru, wystarczy wpisać jego nazwę,
znak równości i wartość, np.:
ENABLE BCD=TRUE
Rysunek 29.7.
InstallShield
automatycznie
utworzy aliasy
BDE, stosowane
przez aplikację,
napisaną w Delphi.
838
Część IV
Omawiane okno dialogowe przedstawiono na rysunku 29.8.
Czwarte i ostatnie okno dialogowe, związane z definiowaniem aliasów BDE,
zawiera jedynie informację o zakończeniu definiowania aliasu. Należy kliknąć
przycisk
Finish
, co ostatecznie zakończy proces definiowania.
Dołączanie sterowników SQL Links
Kliknięcie przycisku
Finish
spowoduje powrót do okna dialogowego
General
Options
. Jeśli aplikacja będzie łączyła się z odległym serwerem za pośrednictwem
sterowników SQL Links, należy uaktywnić odpowiednią opcję. Program poprosi
teraz o wybranie sterowników SQL Links, które mają być dołączone do aplikacji.
Dostępne są sterowniki dla serwera Sybase SQL Server (zarówno ze starszą
biblioteką DB-Library, jak i nowszą CT-Lib), Oracle, InterBase, Informix, DB2
i Microsoft SQL Server. Należy zaznaczyć na liście żądane sterowniki i kliknąć
przycisk
Finish
(zob. rysunek 29.9).
Rysunek 29.8.
W tym oknie
dialogowym należy
szczegółowo
zdefiniować nowy
alias.
Rysunek 29.9.
Z listy,
prezentowanej
w tym oknie
dialogowym,
należy wybrać
sterowniki SQL
Links, które mają
być zainstalowane
razem z aplikacją.
Rozdział 28 Przygotowanie programu instalacyjnego aplikacji
839
UWAGA:
Jeśli w omawianym oknie dialogowym wybrany zostanie choć jeden sterownik
SQL Links, to na ekranie pojawi się informacja o konieczności zainstalowania
modułu BDE. Należy wówczas upewnić się, czy na stronie
General Options
aktywny jest przełącznik BDE (Borland Database Engine).
Aby przejrzeć listę plików, przygotowaną zgodnie z wybranymi opcjami, należy
przejść na stronę
Advanced
okna dialogowego i kliknąć
OK
.
Wybór komponentów i plików
Na tym etapie przygotowywania programu instalacyjnego jego autor definiuje
komponenty, wchodzące w skład aplikacji. Rozbicie aplikacji na komponenty
umożliwia przygotowanie kilku różnych wariantów instalacji. Każdy komponent
zawiera z reguły szereg logicznie powiązanych plików. Końcowy użytkownik
może zatem bez szkody dla podstawowej aplikacji pominąć niektóre komponenty,
korzystając z
opcji instalacji indywidualnej. W
omawianym tutaj prostym
przykładzie wystarczy zdefiniować podstawowe komponenty, niezbędne do
wygenerowania programu instalacyjnego.
Grupy i pliki - Groups and Files
Grupy zawierają zbiory związanych ze sobą plików - plików, które znajdą się
w tym samym katalogu na komputerze docelowym. Oprócz grup, związanych
z modułem BDE, InstallShield automatycznie tworzy grupę
Program Files
,
w której znajdą się pliki, tworzące rdzeń aplikacji. Aby otworzyć odpowiednie
okno dialogowe należy skorzystać z przycisku
Groups and Files
. Następnie należy
podwójnie kliknąć na grupie
Program Files
, co spowoduje rozwinięcie listy
zawartych w niej plików. Na razie grupa zawiera jedynie wskazany wcześniej
główny plik wykonywalny aplikacji.
Do otwartej grupy powinniśmy dodać inne pliki, niezbędne do uruchomienia
aplikacji. Elementy, wchodzące w skład środowiska Delphi, takie jak Borland
Database Engine, można pominąć, gdyż zostaną one uwzględnione w oddzielnych
grupach. Potencjalnymi kandydatami na członków grupy
Program Files
będą
wszelkie elementy lokalne w stosunku do aplikacji - takie, jak lokalne tabele baz
danych (i ich pliki pomocnicze), pakiety Delphi (pliki DPL), biblioteki DLL,
wymagane przez aplikację (na przykład
DBCLIENT.DLL
), itp. Pliki, które mogą
być używane przez więcej niż jedną aplikację, np., niektóre biblioteki DLL
i kontrolki ActiveX, powinny znaleźć się w katalogu wspólnym dla wszystkich
aplikacji zainstalowanych w systemie.
840
Część IV
Pliki można umieszczać w grupie przeciągając je wprost z okna Eksploratora
Windows na listę plików, należących do grupy. Aby uruchomić Eksploratora
należy posłużyć się przyciskiem
Launch Explorer
.
Należy pamiętać, że istnieje możliwość samodzielnego definiowania innych grup,
co pozwala na rozmieszczenie plików w różnych katalogach. Aby dodać nową
grupę, należy kliknąć przycisk
Add Group
, wpisać nazwę nowej grupy i właściwy
dla niej katalog docelowy (w polu
Destination Directory
). Grupa zostanie
utworzona po naciśnięciu przycisku
OK
.
Specjalne identyfikatory katalogów
W polu
Destination Directory
(katalog docelowy) można używać specjalnych
identyfikatorów katalogów, rozpoznawanych przez program InstallShield. Dzięki
nim możliwe jest jednoznaczne zdefiniowanie ścieżki dostępu, bez dokładnej
znajomości struktury katalogów w systemie docelowym. Odpowiedni identyfikator
zastępuje np. rzeczywistą ścieżkę dostępu do katalogu
SYSTEM
środowiska
Windows albo do katalogu
Program Files
. W tabeli 29.1 wymieniono
i opisano specjalne identyfikatory katalogów, rozpoznawane przez program
InstallShield.
Tabela 29.1. Identyfikatory katalogów, rozpoznawane przez program
InstallShield.
Identyfikator Zastępowany przez...
<INSTALLDIR>
Katalog docelowy, określony przez użytkownika
<WINDIR>
Katalog, w którym znajduje się system Windows
<WINSYSDIR>
Katalog SYSTEM w Windows 95 (lub SYSTEM32
w Windows NT)
<WINSYS16DIR>
Katalog SYSTEM (z elementami 16-bitowymi)
w Windows NT
<WINDISK> Litera
napędu, na którym znajduje się system
Windows
<WINSYSDISK> Litera
napędu, na którym znajduje się katalog
SYSTEM
<ProgramFilesDir>
Katalog Program Files
<CommonFilesDir>
Katalog Common Files
[nazwa grupy]
Katalog docelowy wskazanej grupy
Rozdział 28 Przygotowanie programu instalacyjnego aplikacji
841
WSKAZÓWKA:
Do każdego z wymienionych powyżej identyfikatorów można dopisać nazwę
dowolnego podkatalogu. Na przykład zapis
<ProgramFilesDir>\Borland
zostanie zinterpretowany jako podkatalog Borland w standardowym katalogu
C:\Program
Files
.
Po zdefiniowaniu wszystkich niezbędnych grup i
przeciągnięciu do nich
odpowiednich plików, można przejść na stronę
Components
tego samego okna
dialogowego. Na rysunku 29.10 przedstawiono omówioną powyżej stronę
Groups
.
Komponenty - Components
Strona
Components
znajduje zastosowanie tylko przy tworzeniu programu
instalacyjnego z opcją instalacji indywidualnej. Podział aplikacji na komponenty
umożliwia użytkownikowi wybór składników, które mają zostać zainstalowane
i tych, które mają być pominięte. W omawianym, prostym przykładzie nie ma
potrzeby stosowania jakichkolwiek opcji, dostępnych za pośrednictwem strony
Components
. Dlatego na razie stronę tę pominiemy - na jej bliższe omówienie
przyjdzie czas przy okazji omawiania przykładu zaawansowanego programu
instalacyjnego.
Warianty instalacji - Setup Types
Również strona
Setup Types
używana jest tylko przy tworzeniu programu z opcją
instalacji indywidualnej. W
przypadku prostych programów instalacyjnych
dostępna jest jedynie opcja pełnej instalacji. Dlatego na razie pominiemy opis
strony
Setup Types
- powrócimy do niej przy okazji omawiania przykładu
zaawansowanego programu instalacyjnego.
Aby zachować utworzone definicje grup plików należy kliknąć
OK
.
Rysunek 29.10.
Na stronie Groups
można zdefiniować
i opisać grupy
plików.
842
Część IV
Wybór elementów interfesju komunikacji z użytkownikiem
W kolejnym etapie pracy realizowana jest tylko jedna czynność - wybór okien
dialogowych (Dialog Boxes), które mają być wyświetlane przez tworzony program
instalacyjny.
Okna dialogowe - Dialog Boxes
Po kliknięciu przycisku
Dialog Boxes
na ekranie powinno pojawić się okno
dialogowe, przedstawione na rysunku 29.11.
Okna dialogowe, które zostaną zaznaczone na liście, będą kolejno pojawiać się
w trakcie instalacji. W tabeli 29.2 opisano dostępne okna.
Tabela 29.2. Okna dialogowe, które mogą pojawiać się w trakcie instalacji.
Nagłówek angielski
Nagłówek polski
Opis
Welcome Bitmap
Rysunek powitalny Ilustracja (mapa bitowa)
wyświetlana po uruchomieniu
instalatora.
Welcome Message
Komunikat
powitalny
Komunikat wyświetlany po
uruchomieniu instalatora.
Software License
Agreement
Umowa licencyjna
oprogramowania
Okno z tekstem umowy
licencyjnej - tekst w pliku
wskazanym przez autora
aplikacji.
Readme Information
Plik README -
informacje
z ostatniej chwili.
Okno z tekstem wskazanego
pliku "README".
Rysunek 29.11.
Okno Dialog Boxes
umożliwia wybór
okien dialogowych,
które pojawiać się
będą w trakcie
instalacji.
Rozdział 28 Przygotowanie programu instalacyjnego aplikacji
843
Nagłówek angielski
Nagłówek polski
Opis
User Information
Dane o użytkowniku Okno, w którym użytkownik
może wprowadzić swoje dane.
Choose Destination
Location
Wybór katalogu
docelowego
Okno, w którym użytkownik
może wybrać katalog docelowy.
Setup Type
Rodzaj instalacji
Okno, umożliwiające
użytkownikowi wybór instalacji
typowej, minimalnej lub
indywidualnej.
Custom Setup
Instalacja
indywidualna
Okno z opcjami instalacji
indywidualnej.
Select Program Folder Wybór folderu
programów
Okno, umożliwiające
użytkownikowi wybór folderu
dla ikony aplikacji w menu Start.
Start Copying Files
Rozpoczęcie
kopiowania plików
Informacja poprzedzająca
kopiowanie plików.
Progress Indicator
Wskaźnik postępu
Informacja o postępie
kopiowania plików.
Billboards
Ilustracje
Ilustracja (mapa bitowa)
wyświetlana podczas
kopiowania.
Online registration
Rejestracja przez
modem
Opcja zdalnej rejestracji
użytkownika za pośrednictwem
modemu.
Setup Complete
Koniec instalacji
Komunikat o zakończeniu
instalacji.
Aby dane okno pojawiło się w trakcie instalacji, wystarczy zaznaczyć je na liście.
W przypadku niektórych okien możliwe jest określenie dodatkowych ustawień.
Aby uzyskać dostęp do parametrów aktualnie podświetlonego okna dialogowego
należy kliknąć przycisk
Settings
.
Custom Setup
Okno Custom Setup umożliwia instalację tylko wybranych przez użytkownika
komponentów.
844
Część IV
Rysunki - mapy bitowe
InstallShield Express pozwala na stosowanie jedynie 16-kolorowych map
bitowych. Należy pamiętać o tym ograniczeniu, wybierając rysunek powitalny
i ilustrację. Przykładowy rysunek powitalny jest statyczny - nie zmieni się, gdy
użytkownik wybierze własny rysunek. Wybrana mapa bitowa pojawi się dopiero
po uruchomieniu programu instalacyjnego.
Zmiany w rejestrze systemowym
W następnym etapie tworzenia programu instalacyjnego należy zdefiniować
pozycje, jakie program instalacyjny ma wpisać do rejestru systemowego.
Większość aplikacji nie wymaga jednak wprowadzania zmian w rejestrze, dlatego
przy omawianiu prostego, przykładowego programu instalacyjnego możemy
pominąć ten etap.
Wybór folderów i ikon
W tym etapie pracy należy zdefiniować foldery programów i ikony, które mają być
tworzone przez program instalacyjny. W oknie dialogowym
General Settings
(ogólne ustawienia) można wybrać ikony, które powinny znaleźć się w folderze
aplikacji, umieszczonym w menu
Start
. To samo okno dialogowe umożliwia
zdefiniowanie parametrów wywołania aplikacji.
Okno dialogowe
Advanced Settings
umożliwia z kolei umieszczenie w menu
Start
osobnej ikony instalowanej aplikacji. Ponadto można tutaj wybrać alternatywny
katalog roboczy, załadować ikonę z zewnętrznego pliku zasobów i zdefiniować
klawisz skrótu dla aplikacji.
W przypadku prostego programu instalacyjnego wszystkie powyższe czynności
można pominąć. Jak już wcześniej wspomniano, na liście w oknie
General
Settings
automatycznie umieszczona została ikona głównego pliku
wykonywalnego aplikacji. Przy tworzeniu prostych procedur instalacyjnych nie ma
na ogół potrzeby dokonywania jakichkolwiek dalszych zmian w konfiguracji
folderów i ikon. Do zagadnienia tego powrócimy przy okazji omawiania przykładu
zaawansowanego programu instalacyjnego.
Przygotowanie zawartości nośników (Disk Builder)
Ostatnim etapem pracy, który autor aplikacji może wykonywać na własnym
komputerze, jest przygotowanie zawartości nośników. Polecenie
Run Disk Builder
tworzy pliki, reprezentujące zawartość nośników (tzw. disk images). Oczywiście
nośniki zawierać będą instalowaną aplikację i sam program instalacyjny. Należy
pamiętać o zadeklarowaniu właściwego typu nośnika - dzięki temu utworzone pliki
Rozdział 28 Przygotowanie programu instalacyjnego aplikacji
845
(disk images) będą miały właściwe rozmiary. Przed przystąpieniem do dalszych
działań należy zapisać bieżący projekt.
Po kliknięciu przycisku
Disk Builder
na ekranie pojawi się odpowiednie okno
dialogowe. W jego lewym-dolnym rodu znajduje się rozwijana lista, z której
można wybrać typ nośnika. Domyślnie przyjmowany jest rozmiar 1.44 MB. Do
wyboru jest szereg innych typów dyskietek oraz dysk CD-ROM. Aby rozpocząć
tworzenie plików, reprezentujących zawartość nośników należy skorzystać
z przycisku
Build
. Omawiane okno dialogowe przedstawiono na rysunku 29.12.
Jeśli przygotowanie zawartości nośników zakończy się bez przeszkód, to w lewej
części okna dialogowego pojawi się szereg ikon, reprezentujących dyskietki
instalacyjne (jeśli jako nośnik wskazano dysk CD-ROM, to pojawi się tylko jedna
ikona). Po przygotowaniu zawartości nośników należy kliknąć przycisk
Close
, co
spowoduje zamknięcie okna dialogowego.
Testowanie procedury instalacyjnej
W tym momencie stopień zaawansowania przygotowań pozwala już na
przetestowanie programu instalacyjnego. Przed jego pierwszym uruchomieniem
należy jednak zwrócić uwagę na kilka potencjalnych zagrożeń. Po pierwsze,
program instalacyjny należy zawsze testować na osobnym komputerze - w żadnym
wypadku nie na tym, na którym tworzona jest aplikacja. Konfiguracja komputera
przeznaczonego do testów powinna być jak najbardziej zbliżona do konfiguracji
komputera (lub komputerów) końcowego użytkownika. Dzięki temu test wypadnie
bardziej wiarygodnie i pozwoli wykryć ewentualne problemy jeszcze przed
pierwszą instalacją, przeprowadzaną u klienta.
Po drugie, jeśli już doszło do sytuacji, w której testowy projekt został
zainstalowany w systemie, zawierającym uprzednio standardowe komponenty
środowiska firmy Borland, należy zachować szczególną ostrożność przy próbach
odinstalowania aplikacji. Program odinstalowujący może bowiem usunąć pewne
Rysunek 29.12.
Pojawienie się
okna dialogowego
Disk Builder
rozpoczyna proces
przygotowania
zawartości
nośników, tj.
programu
instalacyjnego
i spakowanych
plików aplikacji.
846
Część IV
kluczowe elementy, niezbędne do poprawnej pracy środowiska programistycznego
Delphi. Jeśli w trakcie odinstalowania Delphi akurat nie korzysta z danego
komponentu, to system Windows uzna, że komponent ten nie jest używany
i zezwoli na jego usunięcie. Program instalacyjny umieszcza szereg plików w tych
samych katalogach, w których znajdują się pliki Delphi. Dlatego odinstalowanie
aplikacji może skutecznie uniemożliwić dalsze korzystanie z Delphi.
Usunięcie niektórych plików uniemożliwi także ponowne uruchomienie procedury
Disk Builder, gdyż do przygotowania zawartości nośników niezbędne są pliki,
które właśnie odinstalowano. Brakujące pliki trzeba w takim przypadku ponownie
zainstalować z dysku CD-ROM, zawierającego pakiet Delphi. Dopiero to pozwoli
naprawić szkody, spowodowane przez procedurę odinstalowującą.
Powyższe rozważania nasuwają jeden wniosek: programy instalacyjne, utworzone
przy pomocy narzędzia InstallShield, należy testować na specjalnie
przygotowanych komputerach, chyba że nie przewiduje się usuwania raz
zainstalowanej aplikacji. Wskazane jest ponadto sporządzenie kopii plików
z
komputera testowego (w szczególności katalogu Windows i
rejestru
systemowego) przed zainstalowaniem aplikacji. W przyszłości, przy kolejnych
testach procedury instalacyjnej, będzie można zawsze wrócić do pierwotnej,
"czystej" konfiguracji systemu.
OSTRZEŻENIE:
Niepoprawnie przeprowadzony test procedury instalacyjnej w
programie
InstallShield może przynieść katastrofalne skutki. Niektóre zmiany, poczynione
w środowisku systemowym komputera, używanego do przygotowania aplikacji,
mogą okazać się niemal nieodwracalne. Konkurencyjny w
stosunku do
InstallShield program WISE umożliwia testowanie procedury instalacyjnej bez
wprowadzania jakichkolwiek rzeczywistych zmian w systemie. Dzięki temu autor
aplikacji może prześledzić proces instalacji bez obaw o stan swojego własnego
systemu. Natomiast program InstallShield może w
skrajnych przypadkach
nieodwracalnie zmodyfikować system, na którym przygotowywana jest procedura
instalacyjna. Należy podkreślić konieczność zachowania szczególnej ostrożności
przy uruchamianiu jakiegokolwiek programu instalacyjnego - nawet własnego
autorstwa.
Przygotowanie nośników
Ostatnim z
dziewięciu etapów tworzenia programu instalacyjnego jest
sporządzenie nośników dystrybucyjnych. Proces ten sprowadza się do skopiowania
przygotowanych uprzednio plików (disk images) na dyskietki lub dysk optyczny.
Gdy na ekranie pojawi się okno dialogowe
Copy To Floppy
wystarczy kliknąć
Rozdział 28 Przygotowanie programu instalacyjnego aplikacji
847
przycisk
Copy All Disk Images
. InstallShield skopiuje odpowiednie pliki na kolejne
dyskietki (zob. rysunek 29.13).
Gotowych nośników można już użyć do zainstalowania aplikacji na komputerze
końcowego użytkownika. Jednak przedtem należy je przetestować, instalując
aplikację na oddzielnym komputerze, przeznaczonym do prób. Pozwoli to raz
jeszcze skontrolować działanie programu instalacyjnego i upewnić się, że nośniki
są wolne od wad fizycznych.
Jeżeli program instalacyjny działa poprawnie, to należy zapisać projekt
w programie InstallShield, tak aby w przyszłości można było ponownie sporządzić
nośniki instalacyjne.
Zaawansowana procedura instalacji (Advanced Setup)
W niniejszej sekcji omówiony zostanie bardziej złożony przykład. Pokażemy,
w jaki sposób przygotować program instalacyjny, zawierający opcję instalacji
indywidualnej (Custom Setup). Instalacja indywidualna umożliwia użytkownikowi
końcowemu wybór plików, które mają zostać zainstalowane. Opcję taką wybiera
wielu zaawansowanych użytkowników - powinni oni mieć możliwość pominięcia
elementów aplikacji, które nie są niezbędne do jej funkcjonowania
w podstawowym zakresie. Opcja instalacji indywidualnej pozwala na ograniczenie
przestrzeni dyskowej, zajmowanej przez aplikację; jej obecność powoduje, że
program instalacyjny postrzegany będzie jako bardziej dopracowany.
Pierwsze kroki
Jeśli w programie InstallShield wciąż otwarty jest poprzedni, prosty projekt,
należy zapisać go na dysku, a następnie zamknąć, korzystając z opcji menu
File\Close
. Należy teraz nacisnąć CTRL+N w celu utworzenia nowego projektu.
Rysunek 29.13.
Okno dialogowe
Copy To Floppy
umożliwia
rozpoczęcie
kopiowania plików
na dyskietki lub
inne nośniki.
848
Część IV
Na ekranie pojawi się okno dialogowe
New Project
. Podobnie jak w poprzednim,
prostym projekcie, należy w nim wpisać nazwę i typ projektu, katalog, a także
określić, czy w ramach projektu ma być tworzona opcja instalacji indywidualnej
(Custom Setup). W przypadku instalacji indywidualnej końcowy użytkownik może
dostosować przebieg instalacji do własnych potrzeb, w szczególności zainstalować
tylko wybrane komponenty aplikacji.
Należy zatem uaktywnić opcję
Include a custom setup type
, po czym wpisać
nazwę projektu w polu
Project Name
. Ponadto w polu
Project Path
należy wybrać
istniejący katalog (pliki z projektami instalacji dobrze jest przechowywać
w oddzielnym katalogu, takim jak
\DATA
lub
\My Documents
; w omawianym
przykładzie wybrano katalog
\My Documents
). Projekt powinien znaleźć się
w nowym podkatalogu o nazwie
Installs
. Aby utworzyć nowy podkatalog
należy najpierw wybrać
C:\My Documents
w polu
Project Path
, a następnie
wpisać
Installs
w polu
New Subdirectory
. Tworząc projekt, InstallShield
najpierw utworzy podkatalog, a następnie umieści w nim plik nowego projektu.
Na ekranie pojawi się teraz główne okno programu InstallShield. Jak już
wspomniano przy okazji omawiania prostej procedury instalacyjnej, w oknie tym
widoczna jest lista obejmująca dziewięć głównych etapów tworzenia programu
instalacyjnego. Każdy etap podzielony jest na szereg czynności cząstkowych.
Sekwencyjne wykonanie kolejnych czynności doprowadzi do utworzenia
programu instalacyjnego. InstallShield zaznacza czynności, które zostały już
wykonane - pomaga to zorientować się, na którym etapie znajduje się bieżący
projekt. Etapy tworzenia procedury instalacyjnej wymieniono i scharakteryzowano
w tabeli 29.3.
Tabela 29.3. Dziewięć etapów tworzenia procedury instalacyjnej w programie
InstallShield.
Etap Opis
Set the Visual Design
Ustalenie parametrów, decydujących o
postaci
Rysunek 29.14.
W oknie
dialogowym New
Project należy
wpisać informacje
o nowym projekcie.
Rozdział 28 Przygotowanie programu instalacyjnego aplikacji
849
Etap Opis
graficznej procedury instalacyjnej.
Select InstallShields
Options for Delphi
Wybór komponentów środowiska firmy Borland,
które mają być dołączone do instalowanej aplikacji.
Specify Components and
Files
Grupowanie plików i tworzenie kilku wariantów
instalacji.
Select the User Interface
Components
Wybór okien dialogowych, które mają pojawiać się
na ekranie w trakcie instalacji.
Make Registry Changes
Przygotowanie automatycznej modyfikacji rejestru
systemowego.
Specify Folders and Icons Zdefiniowanie folderów i ikon, które mają zostać
utworzone w trakcie instalacji.
Run Disk Builder
Przygotowanie plików, będących kopiami dyskietek
(lub innych nośników) instalacyjnych.
Test the Installation
Testowanie procedury instalacyjnej.
Create Distribution Media Kopiowanie plików na dyskietki lub inne nośniki.
W momencie tworzenia nowego projektu, InstallShield wskazuje na pierwszy etap
tworzenia programu instalacyjnego - Application Information.
Postać graficzna procedury instalacyjnej
Jak już wspomniano w sekcji „Prosta procedura instalacyjna”, w pierwszym
z dziewięciu etapów tworzenia programu instalacyjnego należy wprowadzić
informacje o instalowanej aplikacji i określić szereg parametrów, decydujących
o wyglądzie programu. Aby wprowadzić dane o aplikacji, m.in. nazwę głównego
pliku wykonywalnego, numer wersji, itd. należy kliknąć przycisk
Application
Information
.
Informacje o aplikacji - Application information
W sekcji
App Info
autor programu instalacyjnego wpisuje nazwę aplikacji, jej
głównego pliku wykonywalnego i numer wersji. Możliwe jest również wpisanie
nazwy firmy, jeśli w danym projekcie różni się ona od podanej przy instalacji
programu InstallShield.
W polu
Application Name InstallShield
wpisuje domyślnie nazwę projektu, podaną
wcześniej w oknie
New Project
. Nazwa projektu może składać się z więcej niż
jednego wyrazu, należy jednak pamiętać, że wpisana nazwa stanie się
850
Część IV
automatycznie nazwą katalogu docelowego. Dlatego niewskazane jest
wykorzystywanie pełnej długości pola, w którym można wpisać nazwę, składającą
się nawet z osiemdziesięciu znaków.
Zawartość pola
Application Name
wykorzystywana jest w kilku sytuacjach:
W oknach dialogowych
Welcome Message
(komunikat powitalny) i
Choose
Destination Location
(wybór katalogu docelowego).
Jako element domyślnie proponowanej ścieżki dostępu w polu
Choose
Destination Location
. Domyślna ścieżka dostępu ma postać:
C:\Program
Files\Nazwa firmy\Nazwa aplikacji
UWAGA:
Dane, wpisane w polu
Application Name
, automatycznie zastąpią ustawienia
wybrane w polu
Choose Destination Location
. Jeśli użytkownik zmienił domyślny
katalog docelowy (
Destination Location
), to zmiany te zostaną utracone.
Nazwy, wpisywane w omawianym oknie dialogowym, używane są również w jako
identyfikatory niektórych kluczy w
rejestrze systemowym, tworzonych
automatycznie przez program instalacyjny: klucza w gałęzi Uninstall, klucza
w gałęzi App Paths i
klucza z
informacjami o
użytkowniku. Pierwszy
z powyższych trzech kluczy przyjmuje następującą postać:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\
Uninstall\Nazwa aplikacji
W kluczu tym wpisywane są dwie wartości:
DisplayName
(nazwa wyświetlana
na liście
Dodaj/Usuń programy
w Panelu sterowania) i
UninstallString
(wywołanie programu
UNINST.EXE
, odinstalowującego aplikację).
Drugi klucz, umieszczany w gałęzi
App
Paths
, przyjmuje taką formę:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\
App Paths\TWOJEXE.EXE
Trzeci klucz, zawierający informacje o użytkowniku, wygląda tak:
HKEY_LOCAL_MACHINE\SOFTWARE\Firma\Nazwa aplikacji\Wersja
Wartości tego klucza zawierają imię i nazwisko użytkownika, nazwę firmy
i ewentualnie numer seryjny. Aplikacja może odczytywać te wartości z rejestru
systemowego.
Zawartość pola
Application Executable
określa główny plik wykonywalny
aplikacji. Plik ten zostanie automatycznie dodany do grupy
Program Files
w oknie
dialogowym
Groups and Files
(pod warunkiem, że w polu tym nie zdefiniowano
Rozdział 28 Przygotowanie programu instalacyjnego aplikacji
851
jeszcze żadnych innych grup i plików). Z kolei w oknie dialogowym
General Icon
Settings
tworzona jest odpowiednia ikona (o ile nie zdefiniowano w nim wcześniej
żadnych innych pozycji). Aby wybrać plik wykonywalny z listy należy posłużyć
się przyciskiem wielokropka, widocznym obok pola
Application Executable
.
W polu
Version
wpisać można numer wersji aplikacji. Pozwala to rozróżnić wersje
tego samego programu zainstalowane na jednym komputerze. InstallShield próbuje
odczytać numer wersji z
zasobu VERSIONINFO, dołączonego do pliku
wykonywalnego. Odczytana wartość jest automatycznie proponowana w polu
Version.
WSKAZÓWKA:
W rozdziale 13 - „Ostateczne poprawki” opisano metodę dodawania standardowej
informacji w wersji do aplikacji Delphi.
W polu
Company
wpisywana jest automatycznie nazwa firmy, podana podczas
instalacji programu InstallShield. Można jednak zamiast niej wpisać dowolną inną
nazwę. Jak już wspomniano, wpisana tutaj nazwa zostanie automatycznie
skopiowana do rejestru systemowego.
Na rysunku 29.15 przedstawiono wypełnioną stronę
App Info
.
Okno główne - Main Window
Na stronie
Main Window
autor programu instalacyjnego wpisuje tytuł jego
głównego okna, wybiera ewentualny rysunek (mapę bitową) i ustala kolor tła.
W polu
Main Title
(główny tytuł) wpisywana jest automatycznie nazwa aplikacji,
podana na stronie
App Info
. Można jednak samodzielnie wpisać inny tytuł, niosący
więcej informacji niż sama tylko nazwa projektu. Tytuł w postaci tekstu można
zastąpić rysunkiem - mapą bitową.
Rysunek 29.15.
Informacje
o aplikacji wpisuje
się na stronie App
Info.
852
Część IV
Tytuł nie powinien być zbyt długi, gdyż może nie zmieścić się w oknie.
Należy teraz kliknąć przycisk
Browse
, widoczny obok pola
Logo Bitmap
i rysunek
(mapę bitową), który ma być używany w charakterze znaku graficznego aplikacji.
W podkatalogu
Images\Splash
głównego katalogu Delphi dostępnych jest
kilka gotowych rysunków. W programie InstallShield Express używać można
wyłącznie 16-kolorowych map bitowych.
Po wybraniu rysunku należy jeszcze ustalić jego położenie. Znak graficzny
aplikacji umieszczany jest domyślnie w prawym-górnym rogu ekranu. Na ogół nie
ma powodu, by zmieniać domyślnie proponowane położenie albo kolor tła ekranu.
Stronę
Main Window
przedstawiono na rysunku 29.16.
Opcje dodatkowe - Features
Jak już wcześniej wspomniano, strona
Features
zawiera tylko jeden element -
przełącznik, decydujący o utworzeniu specjalnego programu odinstalowującego
aplikację. Przełącznik ten powinien pozostać uaktywniony, dlatego należy jedynie
kliknąć
OK
, co spowoduje zachowanie ustawień, dotyczących wyglądu procedury
instalacyjnej.
Opcje programu Install Shield, dotyczące Delphi
W kolejnym etapie przygotowywania programu instalacyjnego należy wybrać
wymagane przez aplikacją moduły oprogramowania, związane ze środowiskiem
Delphi. O ile aplikacja nie korzysta z innego niż BDE aparatu bazy danych,
konieczne będzie zainstalowanie właśnie Borland Database Engine. Podobnie,
jeżeli aplikacja uzyskuje dostęp do odległych serwerów, korzystając ze
sterowników SQL Links firmy Borland, to oczywiście odpowiednie sterowniki
powinny znaleźć się w pakiecie instalacyjnym.
Rysunek 29.16
Strona opisująca
okno główne -
Main Window -
w programie
InstallShield.
Rozdział 28 Przygotowanie programu instalacyjnego aplikacji
853
Opcje ogólne - General Options
Aby wybrać moduły, z których korzystać będzie instalowana aplikacja, należy
kliknąć przycisk
General Options
. Moduł SQL Links może być instalowany tylko
łącznie z Borland Database Engine.
Dołączanie BDE
Aby dołączyć do pakietu instalacyjnego moduł BDE należy uaktywnić odpowiedni
przełącznik. Na ekranie pojawi się drugie okno dialogowe, w którym InstallShield
pyta, czy program instalacyjny ma przeprowadzać pełną (Full) czy cząstkową
(Partial) instalacje BDE. Należy wybrać domyślnie proponowaną pełną instalację
i kliknąć
OK
.
Definiowanie aliasów BDE, przeznaczonych do dołączenia
Kolejny zestaw okien dialogowych służy do konfigurowania aliasów BDE, które
mają być tworzone automatycznie przez program instalacyjny. Aby zapewnić
prawidłowe działanie zainstalowanej aplikacji należy zadbać o
dołączenie
wszystkich wymaganych aliasów. Aby dołączyć nowy alias należy kliknąć
przycisk
New
i wpisać nazwę w oknie dialogowym, przedstawionym na rysunku
29.17.
Aby przejść dalej należy kliknąć przycisk
OK
.
InstallShield pyta teraz, czy alias ma być instalowany do wykorzystania zarówno
z 16-bitową, jak i 32-bitową wersją Borland Database Engine. Aplikacje 32-bitowe
nie korzystają z 16-bitowych aliasów, dlatego odpowiedni przełącznik można
pozostawić w stanie nieaktywnym i kliknąć
OK
.
W trzecim kroku należy określić szczegółowe własności aliasu, który ma być
utworzony w systemie docelowym. Nazwa aliasu przenoszona jest z poprzedniego
okna dialogowego. W bieżącym oknie dialogowym należy natomiast wybrać typ
aliasu.
Jeśli alias odnosi się do tabeli lokalnej (np. typu Paradox lub dBASE), to
konieczne będzie wpisanie ścieżki dostępu do plików, zawierających dane. Należy
pamiętać, że w ścieżce dostępu można stosować nazwy grup plików (ujęte
w
nawiasy kwadratowe). Zostaną one zastąpione nazwami katalogów,
Rysunek 29.17.
InstallShield
automatycznie
utworzy aliasy
BDE, stosowane
przez aplikację,
napisaną w Delphi.
854
Część IV
przypisanymi do tych grup. Na przykład, zamiast
<INSTALLDIR>\Data
lub
C:\DATA\RENTMAN\DATA
w polu
Path
(ścieżka dostępu) można wpisać po
prostu [Data Files], tj. odwołanie do grupy plików, która zostanie zdefiniowana
później. InstallShield zastąpi nazwę grupy ścieżką dostępu do jej katalogu
docelowego.
W wierszowym polu edycyjnym można określić dodatkowe parametry aliasu. Aby
zdefiniować wartość parametru, wystarczy wpisać jego nazwę, znak równości
i wartość, np.:
USER NAME=SYSDBA
Omawiane okno dialogowe przedstawiono na rysunku 29.18.
Czwarte i ostatnie okno dialogowe, związane z definiowaniem aliasów BDE,
zawiera jedynie informację o zakończeniu definiowania aliasu. Należy kliknąć
przycisk
Finish
, co ostatecznie zakończy proces definiowania.
Dołączanie sterowników SQL Links
Kliknięcie przycisku
Finish
spowoduje powrót do okna dialogowego
General
Options
. Jeśli aplikacja będzie łączyła się z odległym serwerem za pośrednictwem
sterowników SQL Links, należy uaktywnić odpowiednią opcję. Program poprosi
teraz o wybranie sterowników SQL Links, które mają być dołączone do aplikacji.
Dostępne są sterowniki dla serwera Sybase SQL Server, Oracle, InterBase,
Informix, DB2 i Microsoft SQL Server. Należy zaznaczyć na liście żądane
sterowniki i kliknąć przycisk
Finish
.
Wybór komponentów i plików
W tym etapie przygotowywania programu instalacyjnego jego autor definiuje
komponenty, wchodzące w skład aplikacji. Rozbicie aplikacji na komponenty
umożliwia przygotowanie kilku różnych wariantów instalacji. Każdy komponent
Rysunek 29.18.
W tym oknie
dialogowym należy
szczegółowo
zdefiniować nowy
alias.
Rozdział 28 Przygotowanie programu instalacyjnego aplikacji
855
zawiera z reguły szereg logicznie powiązanych plików. Końcowy użytkownik
może zatem bez szkody dla podstawowej aplikacji pominąć niektóre komponenty,
korzystając z opcji instalacji indywidualnej. Autor programu instalacyjnego może
zdefiniować grupy plików, należących do aplikacji ale przechowywanych
w oddzielnych katalogach. Dzięki temu użytkownik końcowy może zrezygnować
z instalacji niektórych plików pomocniczych.
Grupy i pliki - Groups and Files
Grupy zawierają zbiory związanych ze sobą plików - plików, które znajdą się
w tym samym katalogu na komputerze docelowym. Oprócz grup, związanych
z modułem BDE, InstallShield automatycznie tworzy trzy grupy Program Files
(pliki programu), Help Files (pliki pomocy) i Sample Files (pliki przykładowe).
Aby otworzyć odpowiednie okno dialogowe należy skorzystać z przycisku
Groups
and
Files
. Następnie należy podwójnie kliknąć na grupie
Program
Files
, co
spowoduje rozwinięcie listy zawartych w niej plików. Na razie grupa zawiera
jedynie wskazany wcześniej główny plik wykonywalny aplikacji.
Do otwartej grupy należy dodać inne pliki, niezbędne do uruchomienia aplikacji.
Elementy, wchodzące w skład środowiska Delphi, takie jak Borland Database
Engine, można pominąć, gdyż zostaną one uwzględnione w oddzielnych grupach.
W grupie
Program Files
nie należy również umieszczać plików danych aplikacji -
za chwilę pokażemy, w jaki sposób utworzyć dla nich osobną grupę. Do grupy
Program Files
powinny natomiast trafić wszelkie inne elementy niezbędne do
działania aplikacji, takie jak pakiety Delphi, biblioteki DLL, pliki konfiguracyjne,
informacyjne, itp. Pliki, które mogą być używane przez więcej niż jedną aplikację
powinny znaleźć się w
katalogu wspólnym dla wszystkich aplikacji
zainstalowanych w systemie. Bardzo często funkcję tę pełni katalog podkatalog
Common Files
katalogu
Program Files
.
Pliki można umieszczać w grupie, przeciągając je wprost z okna Eksploratora
Windows na listę plików, należących do grupy. Aby uruchomić Eksploratora
należy posłużyć się przyciskiem
Launch Explorer
.
Po przeciągnięciu wszystkich niezbędnych plików do grupy Program Files, można
przystąpić do kompletowania grupy Help Files. Opcja instalacji indywidualnej
powinna dopuszczać pominięcie plików pomocy. Pliki takie zajmują zwykle dużo
miejsca, a wielu użytkowników w ogóle z nich nie korzysta. Przeciąganie plików
do grupy Help Files odbywa się tak samo, jak w przypadku grupy Program Files.
Grupę Sample Files można usunąć, o ile do aplikacji nie będą dołączane pliki
przykładowe. Do aplikacji, pisanych na zamówienie, nie dołącza się na ogół
plików przykładowych. Nie ma zatem powodu, by pozostawiać pustą grupę
plików.
856
Część IV
Należy natomiast utworzyć nową grupę, przeznaczoną na pliki bazy danych
aplikacji. Oto odpowiednia procedura postępowania:
1. Kliknąć przycisk
Add Group
. W polu
Group Name
wpisać nazwę grupy
Database Files
. W polu katalogu docelowego (Destination Directory)
powinien pozostać wpisany identyfikator
<INSTALLDIR
>.
2. Kliknąć przycisk
OK
.
3. Przeciągnąć pliki bazy danych z okna Eksploratora Windows do nowej grupy
Data Files. Wyodrębnienie specjalnej grupy, zawierającej pliki danych,
pozwala przechowywać pliki programu i jego dane w oddzielnych katalogach.
4. Po przeciągnięciu wszystkich plików można przejść na stronę
Components
.
Omówioną tutaj stronę
Groups
ilustruje rysunek 29.19.
Komponenty - Components
Podział aplikacji na komponenty umożliwia użytkownikowi wybór składników,
które mają zostać zainstalowane i tych, które mają być pominięte. Na stronie
Components
autor programu instalacyjnego kojarzy grupy, utworzone wcześniej
na stronie
Groups
, z komponentami instalacji, które końcowy użytkownik będzie
mógł włączać lub pomijać w swojej instalacji indywidualnej. Z reguły każda grupa
plików ma swój odpowiednik w
postaci komponentu. Między grupami
a komponentami występuje zwykle relacja typu "jeden do jednego".
Podobnie, jak na stronie
Groups
, także i tutaj występują trzy standardowe
elementy (oprócz komponentów związanych z
BDE) - komponenty
Application Files
(pliki aplikacji),
Help and Tutorial Files
(pliki
pomocy i
samouczka) i
Sample Files
(pliki przykładowe). Jeśli przy
Rysunek 29.19.
Na stronie Groups
można zdefiniować
grupy plików
i określić ich
zawartość.
Rozdział 28 Przygotowanie programu instalacyjnego aplikacji
857
definiowaniu grup usunięta została grupa Sample Files, to oczywiście należy
usunąć także odpowiadający jej komponent.
Na stronie
Components
w prosty sposób dodawać można komponenty, których nie
ma na proponowanej liście, a
także zmieniać nazwy i
opisy istniejących
komponentów.
Do poprawnej pracy aplikacja wymaga plików danych, dlatego nie ma powodu, by
tworzyć oddzielny komponent, skojarzony z grupą Data Files. Grupa ta - podobnie
jak Program Files - zostanie skojarzona z komponentem
Application Files
.
Z kolei grupa Help Files powinna być skojarzona z osobnym komponentem, tak
aby końcowy użytkownik mógł z niej zrezygnować.
Odpowiednie modyfikacje rozpoczniemy od zmiany nazwy grupy Help and
Tutorial Files. Zamiast proponowanej nazwy można wpisać nazwę polską. Ponadto
większość aplikacji, przeznaczonych dla wąskich grup odbiorców, nie zawiera
specjalnego samouczka. Dlatego nowa nazwa powinna brzmieć np. Pliki pomocy.
Aby zmienić nazwę, należy kliknąć przycisk
Modify Component
, po czym wpisać
nową nazwę w polu
Component Name
. Zmienić można również opis komponentu
(pole
Description
). Aby zachować wprowadzone modyfikacje należy kliknąć
OK
.
Kolejnym krokiem powinno być skojarzenie grup z
poszczególnymi
komponentami. Aby skojarzyć grupę z komponentem należy kliknąć (zaznaczyć)
żądany komponent na liście
Application
Components
, podobnie zaznaczyć grupę
na liście
File
Groups
, a następnie kliknąć przycisk
Add to Application Component
.
Przycisk ten znajduje się pod listą
File Groups
. Jeśli zaznaczona grupa jest już
skojarzona z
jakimś komponentem, to wspomniany przycisk pozostanie
nieaktywny.
InstallShield automatycznie kojarzy standardowe grupy i komponenty aplikacji,
dlatego grupy Program Files i Help Files są już skojarzone z odpowiednimi
komponentami. Niestety, grupy plików, związanych z BDE, nie są automatycznie
kojarzone z odpowiadającymi im komponentami aplikacji - skojarzenie to należy
zadeklarować samodzielnie. Z
odpowiednim komponentem musi też być
skojarzona nowa, dodatkowo utworzona grupa Database Files. Aby skojarzyć
grupę z komponentem należy:
1. Kliknąć grupę
Database
Files
na liście
File
Groups
.
2. Klikn¹æ komponent
Application Files
(lub np.
Pliki aplikacji
,
jeśli zmieniono nazwę komponentu) na liście
Application Components
.
3. Kliknąć przycisk
Add to Application Component
, co spowoduje dodanie
zaznaczonej grupy do zaznaczonego komponentu.
4. Powyższy proces należy powtórzyć w odniesieniu do wszystkich grup plików,
związanych z modułem BDE.
858
Część IV
Proces definiowania komponentu zilustrowano na rysunku 29.20.
Po zdefiniowaniu wszystkich komponentów aplikacji, można przejść na trzecią
stronę omawianego okna dialogowego, dotyczącą wariantów instalacji - Setup
Types.
Warianty instalacji - Setup Types
Na stronie
Setup Types
autor programu instalacyjnego może skojarzyć utworzone
wcześniej komponenty aplikacji z jednym z trzech wbudowanych wariantów
instalacji:
Compact
(minimalna),
Custom
(indywidualna) lub
Typical
(typowa).
InstallShield dopuszcza zdefiniowanie tylko tych trzech wariantów instalacji; nie
ma możliwości dodania własnych wariantów ani zmiany nazwy istniejących.
Skojarzenie komponentu z wariantem instalacji przebiega w prosty sposób.
Wystarczy zaznaczyć komponent na liście
Application Components
, zaznaczyć
wariant instalacji na liście
Setup
types
, a następnie kliknąć przycisk
Add
to
Setup
Type
.
W momencie pierwszego otwarcia strony
Setup
Types
, każdy ze zdefiniowanych
uprzednio komponentów aplikacji skojarzony jest ze wszystkimi trzema
wariantami instalacji. Skojarzenie takie jest poprawne w przypadku instalacji
indywidualnej (Custom), gdyż użytkownik sam musi zdecydować, które
z komponentów chce zainstalować, a które - pominąć. Również instalacja typowa
obejmuje zazwyczaj wszystkie dostępne komponenty aplikacji. Gdyby w typowej
instalacji niektóre z komponentów zostały pominięte, to użytkownicy, chcący
w pełni wykorzystać potencjał programu, musieliby wybierać wariant instalacji
indywidualnej.
Wariant instalacji minimalnej (Compact) obejmuje zazwyczaj tylko te
komponenty, bez których aplikacja nie może funkcjonować nawet
Rysunek 29.20
Podział aplikacji
na komponenty
umożliwia
użytkownikowi
wybór składników,
które mają zostać
zainstalowane
i tych, które mają
być pominięte.
Rozdział 28 Przygotowanie programu instalacyjnego aplikacji
859
w podstawowym zakresie. Można tutaj pominąć pliki pomocy. Użytkownikom,
którzy wybierają ten wariant instalacji, zależy zwykle na ograniczeniu zużycia
przestrzeni dyskowej.
Warianty Custom i Typical są zatem od razu skonfigurowane poprawnie.
Konieczne będzie jedynie zmodyfikowanie wariantu Compact. W związku z tym
należy kliknąć wariant Compact i usunąć skojarzony z nim komponent
Pliki
pomocy
.
Kliknięcie
OK
spowoduje zachowanie definicji grup, komponentów i wariantów
instalacji. Omówioną tutaj stronę
Setup Types
przedstawiono na rysunku 29.21.
Wybór elementów interfesju komunikacji z użytkownikiem
Po przygotowaniu poszczególnych wariantów instalacji można przejść do wyboru
elementów interfejsu komunikacji z
użytkownikiem. Na tym etapie pracy
realizowana jest tylko jedna czynność - wybór okien dialogowych (Dialog Boxes),
które mają być wyświetlane przez tworzony program instalacyjny.
Okna dialogowe - Dialog Boxes
Chcąc wybrać okna dialogowe, które będą pojawiać się w trakcie instalacji, należy
kliknąć przycisk
Dialog Boxes
. Aby dane okno pojawiło się w trakcie instalacji,
wystarczy zaznaczyć je na liście. Pola
Setup Types
i
Custom Setup
są już
zaznaczone, gdyż przy tworzeniu nowego projektu w programie InstallShield
uwzględniono opcję instalacji indywidualnej.
W przypadku niektórych okien możliwe jest określenie dodatkowych ustawień.
Aby uzyskać dostęp do parametrów aktualnie podświetlonego okna dialogowego
należy kliknąć przycisk
Settings
. Na przykład, jeśli po uruchomieniu programu
Rysunek 29.21.
W oknie
dialogowym Setup
Types różnym
wariantom
instalacji
przypisuje się
poszczególne
komponenty
aplikacji.
860
Część IV
instalacyjnego na ekranie powinna pojawić się powitalna ilustracja, należy
zaznaczyć na liście okno dialogowe
Welcome
Bitmap
, a następnie przejść na
stronę ustawień
Settings
. Na stronie
Settings
należy skorzystać z przycisku
wielokropka, co umożliwi wybór pliku z mapą bitową, która ma być użyta
w charakterze powitalnej ilustracji (zob. rysunek 29.22).
Rysunek, widoczny w oknie podglądu (Preview) ma charakter przykładowy i nie
zmieni się, gdy autor programu instalacyjnego wybierze własną mapę bitową.
Nowy rysunek widoczny będzie dopiero po uruchomieniu programu
instalacyjnego. Należy ponadto pamiętać, że w programie InstallShield Express
w charakterze rysunków powitalnych i ilustracji (billboards) używać można
wyłącznie 16-kolorowych map bitowych.
Plik README i umowa licencyjna oprogramowania
Program instalacyjny może wyświetlać na ekranie tekst pliku
README
(najświeższe informacje, pominięte w
zwykłej dokumentacji) lub umowy
licencyjnej oprogramowania. Dokumenty powinny być zapisane w
plikach
tekstowych. Należy pamiętać, że tekst nie będzie automatycznie formatowany.
Dlatego pliki tekstowe powinny zawierać w odpowiednich miejscach znaki końca
wiersza. Tekst, widoczny w oknie podglądu (Preview) ma charakter przykładowy
i nie zmieni się, gdy autor programu instalacyjnego wybierze własny plik
tekstowy.
Ilustracje (Billboards)
Mapa bitowa, która ma być używana podczas instalacji w charakterze ilustracji
powinna nosić nazwę
SETUP1.BMP
albo
SETUP1.WMF
. Katalog, w którym
znajduje się mapa bitowa określić można na stronie Settings.
Rysunek 29.22.
Na stronie Settings
określić można
dodatkowe
parametry okien
dialogowych.
Rozdział 28 Przygotowanie programu instalacyjnego aplikacji
861
Zmiany w rejestrze systemowym
W następnym etapie tworzenia programu instalacyjnego należy zdefiniować
pozycje rejestru systemowego, wymagane przez aplikację. Większość aplikacji nie
wymaga wprowadzania zmian w
rejestrze. InstallShield tworzy w
rejestrze
systemowym kilka standardowych wpisów, dotyczących aplikacji. Jeśli aplikacja
wymaga jakichkolwiek dodatkowych kluczy w rejestrze, to należy pamiętać
o zdefiniowaniu ich z aktywną opcją
Uninstall keys
. Zagwarantuje to usunięcie
tych kluczy z
rejestru systemowego podczas odinstalowywania aplikacji.
Aplikacje, spełniające wymogi Windows Setup Guidelines, powinny zawsze po
sobie "posprzątać".
OSTRZEŻENIE:
Podczas usuwania kluczy z rejestru systemowego Windows należy zachować
szczególną ostrożność. Usunięcie niewłaściwego klucza uniemożliwi poprawne
działanie którejś z zainstalowanych aplikacji. Zgromadzenie wszystkich informacji
konfiguracyjnych w centralnej bazie danych ma wady i zalety. W szczególności,
zbyt łatwo można "ogłupić" dowolną aplikację usuwając lub modyfikując jej
klucze w rejestrze.
Wybór folderów i ikon
Na tym etapie pracy należy zdefiniować foldery programów i ikony, które mają
być tworzone przez program instalacyjny. W oknie dialogowym
General Settings
(ogólne ustawienia) można wybrać ikony, które powinny znaleźć się w folderze
aplikacji, umieszczonym w menu
Start
. To samo okno dialogowe umożliwia
zdefiniowanie parametrów wywołania aplikacji.
Okno dialogowe
Advanced Settings
umożliwia z kolei umieszczenie w menu
Start
osobnej ikony instalowanej aplikacji. Ponadto można tutaj wybrać alternatywny
katalog roboczy, załadować ikonę z zewnętrznego pliku zasobów i zdefiniować
klawisz skrótu dla aplikacji.
Aby otworzyć odpowiednie okno dialogowe należy kliknąć przycisk
General
Settings
. Jak już wcześniej wspomniano, na liście w oknie
General
Settings
automatycznie umieszczona została ikona głównego pliku wykonywalnego
aplikacji. Jej opis należy jednak zmienić na bardziej czytelny - sama nazwa
projektu nie niesie zbyt wiele informacji. W tym celu należy kliknąć w polu opisu
i zamienić nazwę projektu na dwu- lub trzy wyrazowy, bardziej czytelny opis
aplikacji. Wpisany tutaj tekst nie powinien jednak być zbyt długi, gdyż
wyświetlany będzie przy ikonie aplikacji w folderach programów. Aby zachować
zmiany należy kliknąć przycisk
Modify
Icon
.
862
Część IV
Aby powrócić do głównego okna programu InstallShield klikamy
OK
.
Przygotowanie zawartości nośników (Disk Builder)
Ostatnim etapem pracy, który autor aplikacji powinien wykonywać na własnym
komputerze, jest przygotowanie zawartości nośników. Polecenie Run Disk Builder
tworzy pliki, reprezentujące zawartość nośników (tzw. disk images). Oczywiście
nośniki zawierać będą instalowaną aplikację i sam program instalacyjny. Należy
pamiętać o zadeklarowaniu właściwego typu nośnika - dzięki temu utworzone pliki
(disk images) będą miały właściwe rozmiary. Przed przystąpieniem do dalszych
działań należy zapisać bieżący projekt.
Po kliknięciu przycisku
Disk Builder
na ekranie pojawi się odpowiednie okno
dialogowe. W jego lewym-dolnym rodu znajduje się rozwijana lista, z której
można wybrać typ nośnika. Domyślnie przyjmowany jest rozmiar 1.44 MB. Do
wyboru jest szereg innych typów dyskietek oraz dysk CD-ROM. Aby rozpocząć
tworzenie plików, reprezentujących zawartość nośników należy skorzystać
z przycisku
Build
.
Jeśli przygotowanie zawartości nośników zakończy się bez przeszkód, to w lewej
części okna dialogowego pojawi się szereg ikon, reprezentujących dyskietki
instalacyjne (jeśli jako nośnik wskazano dysk CD-ROM, to pojawi się tylko jedna
ikona). Po przygotowaniu zawartości nośników należy kliknąć przycisk
Close
, co
spowoduje zamknięcie pola dialogowego.
Testowanie procedury instalacyjnej
Na tym etapie pracy można już przystąpić do testowania procedury instalacyjnej.
Test należy przeprowadzać na osobnym, przeznaczonym do tego celu komputerze,
w żadnym wypadku nie na komputerze używanym do pisania aplikacji lub
komputerze użytkownika końcowego. Jak już wspomniano, próba usunięcia
elementów, współużytkowanych przez zainstalowaną aplikację i Delphi, może
doprowadzić do poważnych problemów. Każdy program, nawet najprostszy,
bezpieczniej jest zawsze testować na oddzielnym komputerze.
Na komputerze używanym do pracy, a nie do testów, można bezpiecznie
prześledzić działanie programu instalacyjnego aż do momentu, w którym zamierza
on rozpocząć kopiowanie plików. Nie wolno natomiast dopuścić do faktycznego
skopiowania plików aplikacji na dysk.
Kopiowanie danych na nośniki
Ostatnim z
dziewięciu etapów tworzenia programu instalacyjnego jest
sporządzenie nośników dystrybucyjnych. Proces ten sprowadza się do skopiowania
Rozdział 28 Przygotowanie programu instalacyjnego aplikacji
863
przygotowanych uprzednio plików (disk images) na dyskietki lub dysk optyczny.
Gdy na ekranie pojawi się okno dialogowe
Copy To Floppy
wystarczy kliknąć
przycisk
Copy All Disk Images.
InstallShield skopiuje odpowiednie pliki na kolejne
dyskietki.
Gotowych nośników można już użyć do zainstalowania aplikacji na komputerze
końcowego użytkownika. Jednak przedtem należy je przetestować, instalując
aplikację na oddzielnym komputerze, przeznaczonym do prób. Pozwoli to raz
jeszcze skontrolować działanie programu instalacyjnego i upewnić się, że nośniki
są wolne od wad fizycznych.
Należy pamiętać o
zapisaniu projektu w
programie InstallShield, tak aby
w przyszłości można było ponownie sporządzić nośniki instalacyjne.
Instalowanie obiektów bazy danych
W tej sekcji przedstawimy kilka wskazówek, dotyczących dystrybucji obiektów
baz danych typu klient-serwer, należących do aplikacji. Bazy danych typu klient-
serwer nie można, w przeciwieństwie do lokalnej tabeli, po prostu dołączyć do
aplikacji. W omawianym wcześniej przykładzie utworzono specjalną grupę
plików, zawierającą plik danych InterBase
RENTMAN.GDB
, należący do aplikacji
RENTMAN
. Jeśli jednak baza danych miałaby być przechowywana na odległym
serwerze lub w ogóle innej platformie systemowej, to nie dałoby się zastosować
tego rodzaju rozwiązania. Musi zatem istnieć jakiś sposób, pozwalający
zrezygnować z dołączania wszystkich plików bazy danych do aplikacji.
Najlepszym rozwiązaniem jest dołączenie do aplikacji skryptów SQL, które
wykonywane będą automatycznie przy jej pierwszym uruchomieniu, albo które
administrator bazy danych musi samodzielnie uruchomić przed pierwszą próbą
użycia aplikacji. Ten drugi wariant jest nawet bezpieczniejszy, gdyż autorowi
aplikacji trudno przewidzieć, jakimi narzędziami do obsługi baz danych
w systemie klienckim dysponować będą przyszli użytkownicy.
Wszystkie poważne systemy zarządzania bazami danych oferują narzędzia do
wykonywania skryptów SQL. Załóżmy, że baza danych
RENTMAN
ma być
tworzona na serwerze Microsoft SQL. Odpowiedni skrypt SQL byłby zapewne
uruchamiany przy pomocy narzędzia ISQL, dołączanego do pakietu SQL Server,
np.:
isql -Usa -PSaPassword -Sserver -iRentMan.SQL -oRentMan.out
Wykonanie tego skryptu spowoduje utworzenie zdefiniowanych w nim obiektów
bazy danych, które staną się odtąd dostępne dla aplikacji. Działające w powyższy
sposób narzędzie ISQL dołączane jest zarówno do pakietu Microsoft, jak i Sybase
SQL Server.
864
Część IV
Jeśli z kolei baza danych
RENTMAN
ma być implementowana w środowisku
Oracle, to można zastosować taki skrypt:
sqlplus SYS/SysPassword@Server @RentMan.SQL
Jeśli docelową platformą jest system InterBase, to odpowiednie polecenie przyjmie
postać:
isql \\server\rentman.dgb -i RentMan.sql -o RentMan.out -u
SYSDBA -p masterkey
Różne systemy zarządzania bazami danych zapewniają różnej jakości narzędzia do
uruchamiania skryptów SQL w
plikach wsadowych. W
każdym przypadku
możliwe będzie jednak przynajmniej utworzenie wszystkich obiektów bazy
danych, wymaganych przez aplikację.