Zgryźliwość kojarzy mi się z radością, która źle skończyła.

Rozdział 17
Delphi a Interbase
W tym rozdziale przedstawimy Interbase RDBMS. Omówimy elementy SQL oraz
niektóre zagadnienia dotyczące wspólnej pracy InterBase i Delphi. Opiszemy także
podstawy administrowania serwerami InterBase.
Zaczniemy oczywiście od uruchomienia serwera.
Uruchamianie serwera InterBase
Sposób uruchomienia serwera w dużym stopniu zależy od systemu operacyjnego.
Mając na uwadze fakt, że nie jest to książka poświęcona wyłącznie systemowi
InterBase, ograniczymy nasze rozważania tylko do najpopularniejszych - Windows
95 i Windows NT.
Po przeprowadzeniu standardowej instalacji, serwer InterBase uruchamia się
automatycznie przy każdym starcie Windows. Na pasku zadań w Windows 95/NT
pojawia się wtedy jego ikona ( lub ikona na pulpicie, jeśli używamy Windows NT
3.51 ).
Klikając ikonę na pasku zadań prawym przyciskiem myszy, uzyskujemy dostęp do
podstawowych ustawień serwera. Jeśli np. wybierzemy - z menu rozwijalnego -
pozycję
Startup Configuration
,
serwer będzie startował równolegle z Windows. Po
wybraniu z kolei
Properties
, będziemy mogli odczytać dopuszczalną i aktualną
liczbę połączeń z serwerem.
Łączenie się z serwerem
W przeciwieństwie do omówionych dotychczas serwerów - aby uzyskać dostęp do
serwerów InterBase, nie musimy definiować oddzielnego połączenia. Jeśli
korzystamy z lokalnego serwera InterBase, oprogramowanie klienta (WISQL,
BDE, itp. ) odwołuje się bezpośrednio do pliku bazy danych (nie ma potrzeby
podawania jakichkolwiek danych odnoszących się do serwera).
W przypadku odległego serwera (InterBase), niezbędne do połączenia informacje
zależą od wyboru protokołu sieciowego. Jeśli łączymy się poprzez TCP/IP, wtedy
plik HOSTS musi zawierać dane dotyczące naszego serwera, np.:
100.10.15.12 marketing
506
Część III
Także plik TCP SERVICES powinien zostać uzupełniony o linię definiującą
protokół dostępu InterBase:
gds_db 3050/tcp
Oczywiście odpowiednie zmiany wplikach dokonywane są automatycznie
w czasie instalacji serwera. Gdy tylko skonfigurujemy dostęp poprzez TCP/IP,
możemy korzystać z WISQL i innych narzędzi InterBase. Należy jeszcze raz
podkreślić, że podane wymagania dotyczące plików inicjacyjnych odnoszą się
tylko do TCP/IP. NetBEUI ani IPX/SPX nie nakładają tego typu wymagań.
Konfigurowanie Aliasów BDE
Teraz utworzymy alias BDE, który umożliwi aplikacjom w Delphi dostęp do
serwera. Ten temat był już omawiany wcześniej, dlatego teraz przedstawimy tylko
kolejne kroki, które pozwolą poprawnie go skonfigurować.
Chcąc zbudować alias BDE powinniśmy wybrać jedno znarzędzi: BDE
Administrator lub Delphi Database Explorer. Opisany poniżej sposób
postępowania odnosi się do programu BDE Administrator.
1. Uruchamiamy BDE Administrator, klikamy prawym przyciskiem myszy fiszkę
Databases
i wybieramy
New
. W oknie dialogowym
New Database Alias
wybieramy, z listy typów aliasów,
INTRBASE
i klikamy
OK
.
2. Wpisujemy nazwę nadaną tworzonemu aliasowi .
3. Konfigurujemy go przez odpowiednie ustawienie parametrów na stronie
Definition
4. Klikamy parametr
SERVER NAME
i wprowadzamy nazwę serwera oraz plik
bazy danych, z którym chcemy się łączyć. Przyjęto konwencję, że ten plik ma
rozszerzenie
GDB
. Wprowadzane dane powinny przyjmować postać:
MIS:/data/interbase/accounting.gdb
gdzie
MIS
jest nazwą twojego serwera a
/data/interbase/
accounting.gdb
jest pełną ścieżką do pliku zawierającego bazę danych.
WSKAZÓWKA
Jeśli korzystamy z lokalnego serwera InterBase, pole
SERVER NAME
może
pozostać niewypełnione. Wystarczy podać tylko pełną ścieżkę dostępu do pliku
zawierającego bazę danych., np.
C:\DATA\INTERBASE\ACCOUNT.GDB
Rozdział 17 Delphi w Interbase
507
5. Jeśli podamy nazwę użytkownika (parametr
USER NAME
), to będzie on
domyślnie przyłączany do serwera. Podana nazwa będzie też umieszczana we
wbudowanym w Delphi oknie dialogowym logowania.
Jak widać jest kilka innych parametrów, którym możemy nadać odpowiednie
wartości. W szczególności jeden z nich powinien być zawsze ustawiony dla
aliasów InterBase -
ENABLE BCD. D
ecyduje on bowiem o tym, jak BDE będzie
interpretował pewne typy danych numerycznych. Chociaż paramatr ma w swej
nazwie BCD, to jednak jego zasięg nie ogranicza się tylko do danych BCD
(
Binary-Coded Decimal
), ale dotyczy także typów zmiennoprzecinkowych:
DECIMAL iNUMERIC. Gdy
ENABLE BCD
jest ustawiony na
FALSE
(ustawienie domyślne), pola DECIMAL lub NUMERIC będą traktowane przez
Delphi jako integers (całkowite). W konsekwencji elementy rozpoznające rodzaj
danych uniemożliwią nam wprowadzanie części dziesiętnych liczb. Dlatego
powinniśmy ustawiać
ENABLE BCD
na
TRUE
we wszystkich aliasach.
Po wybraniu
Apply
wprowadzone zmiany zostają zapamiętane.
Rozwiązywanie problemów połączeniowych z serwerem InterBase
Poniżej zebraliśmy kilka praktycznych porad, które mogą okazać się przydatne
wprzypadku napotkania problemów połączeniowych wnaszych aplikacjach
w Delphi.
1. Skorzystamy najpierw znarzędzia Interbase Communication Diagnostic,
umieszczonego w folderze InterBase 4.2. Klikamy przycisk
Test
ze strony
DB
Connection
. Brak połączenia może być spowodowany złą konfiguracją aliasu
BDE. W takiej sytuacji powinniśmy powrócić do programu BDE Administrator
i upewnić się, czy podane ustawienia są poprawne. Jeśli nadal nie będziemy
uzyskiwali połączenia zDB Connection, powinniśmy przejść na stronę
NetBEUI
lub
Winsock
( wybierając odpowiednią fiszkę) i kliknąć
Test
. Jeśli
choć jeden będzie funkcjonował poprawnie, to prawdopodobną przyczyną
braku połączenia są złe ustawienia parametrów. Jeśli żadna z prób się nie
powiedzie (a mamy pewność, że serwer jest uruchomiony), proponujemy
kontynuowanie diagnostyki według zamieszczonego poniżej opisu.
2. Jeśli InterBase WISQL umożliwia nawiązanie komunikacji zserwerem,
natomiast nadal występują problemy połączeniowe w naszej aplikacji, to
prawdopodobnie konfiguracja aliasu DBE jest niewłaściwa. W takiej sytuacji
powinniśmy powrócić do programu BDE Administrator i upewnić się, czy
podane ustawienia są poprawne ( w szczególności nazwa serwera).
3. Brak połączenia poprzez WISQL świadczy o wadliwym funkcjonowaniu
protokołu sieciowego. Jeśli korzystamy z TCP/IP, łączność z serwerem można
sprawdzić za pomocą programu PING, który jest dostarczany z Windows 95 /
508
Część III
NT. Powinniśmy spróbować łączenia poprzez nazwę komputera zapisaną
w pliku HOSTS lub poprzez jego adres IP.
4. Jeśli korzystamy z nazwanych potoków (ang.
named pipes
) - do komunikacji
z serwerem pracującym w Windows NT powinniśmy użyć polecenia
net
view \\ servername
, gdzie
servername
jest nazwą komputera w sieci
NT, na którym funkcjonuje serwer SQL. Po poprawnej realizacji
net view
posłużymy się instrukcją
netuse \\servername\IPC$,
zamieniając
servername
na nazwę naszego serwera. Wystąpienie jakichkolwiek
nieprawidłowości wskazuje na brak połączenia z komputerem serwera w sieci.
W takim przypadku proponujemy zwrócić się do administratora systemu NT.
Źródłem zakłóceń może być też wadliwa obsługa potoków na serwerze.
5. W sytuacji, gdy uzyskaliśmy połączenie poprzez adres IP, co nie powiodło się
za pośrednictwem nazwy serwera, powinniśmy dokładnie sprawdzić dane
w pliku
HOSTS
, bowiem oprogramowanie klienta InterBase’a korzysta z niego
przy wyszukiwaniu serwera. W pliku
HOSTS
musi się znaleźć odpowiednia
linia z informacjami o każdym serwerze, z którym chcemy się połączyć np:
100.10.15.12 marketing
6. Gdy nie udało się nam połączyć z serwerem (ani poprzez nazwę ani adres IP),
to prawdopodobną przyczyną może być uszkodzenie sieci. Oczywiście
powinniśmy jeszcze raz sprawdzić adres IP serwera oraz uruchomić
PING
(podając adres
127.0.0.1
) - aby przekonać się, czy stos protokołu TCP/IP
funkcjonuje poprawnie. Jeśli test się nie powiedzie, to prawdopodobnie źle
skonfigurowano sam protokół. W takim przypadku proponujemy zwrócić się do
administratora sieci.
7. Może się też zdarzyć, że nie uzyskujemy połączenia poprzez WISQL, natomiast
PING umożliwia nawiązanie komunikacji. Wtakim przypadku możemy
skorzystać z Telnetu (dostarczanego wraz z Windows95/NT). Składnia wywołania
wygląda następująco:
TELNET 100.100.100.100
lub
TELNET hostname
gdzie
100.100.100.100
jest adresem TCP/IP komputera serwera a hostname
jego nazwą. Przyczyną braku połączenia poprzez Telnet może być wadliwe
działanie demona inet na serwerze.
8. Jeśli połączyliśmy się poprzez Telnet przy wciąż nie funkcjonującym WISQL,
powinniśmy się upewnić, czy oprogramowanie serwera InterBase’a zostało
poprawnie zainstalowane i uruchomione. Istotne jest także, czy plik
TCP
SERVICES
zawiera niezbędne informacje. Powinny one przyjmować postać:
Rozdział 17 Delphi w Interbase
509
gds_db 3050/tcp
9. Jeśli nasze działania nie przyniosły pożądanego rezultatu, powinniśmy
skonsultować się z administratorem sieci lub bazy danych.
Wstęp do SQL
Język SQL należy do podstawowych środków komunikowania się z serwerami baz
danych. Niniejszy rozdział jest wprowadzeniem do własnej, bogatej odmiany SQL,
wykorzystywanej przez InterBase. Zwrócimy tutaj uwagę na kilka właściwości,
które różnią tę implementację SQL od dostarczanych przez innych sprzedawców.
Aby móc poznawać wpraktyce prezentowane elementy języka, wystarczy
zapewnić sobie dostęp do uruchomionego serwera i umieć się z nim komunikować
poprzez WISQL.
Tworzenie bazy danych
Zaczniemy od utworzenia bazy danych i umieszczenia w niej tymczasowych tabel,
które zostaną wykorzystane w podanych dalej przykładach. W tym celu posłużymy
się instrukcją
CREATE DATABASE
. Jej składnia zależy od konkretnej
implementacji SQL. Poniższy przykład przedstawia podstawową składnię
InterBase’a:
CREATE DATABASE "C:\DATA\IB\SALES" USER SYSDBA PASSWORD
masterkey
Aby utworzyć bazę danych używając InterBase WISQL, korzystamy z polecenia
Create
Database
z menu
File
. A oto sposób postępowania:
1. Uruchamiamy program interaktywnej obsługi SQL (WISQL) - albo z grupy
programów InterBase’a albo z paska zadań z InterBase Server Manager.
2. Wybieramy polecenie
Create
Database
z menu
File
.
3. Wpisujemy pełną ścieżkę dostępu do bazy, którą chcemy utworzyć (np.
C:\DATA\IB\SALES.GB
) wpolu
Database
okna dialogowego
Create
Database
.
4. Podajemy nazwę użytkownika i hasło. Domyślne wartości tych parametrów to:
nazwa użytkownika-
SYSDBA
; hasło -
masterkey
.
5. Klikamy przycisk
OK
. InterBase powinien utworzyć bazę danych i podłączyć
nas do niej. Później - do łączenia się z istniejącą bazą - korzystamy z polecenia
Connect to
Database
z menu
File
.
W oknie dialogowym
Create DataBase
,w części
Database Options
, można ustawić
pewne parametry bazy, między innymi rozmiar stron (w bajtach) tworzących bazę.
 
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • hannaeva.xlx.pl