2008 09 Lazarus – łatwy dostęp do danych [Programowanie]


Programowanie
Bazy danych/Lazarus
Lazarus  łatwy
dostęp do danych
Marek Sawerwain
Uruchomienie serwera bazy danych w systemie Linux w większości dystrybucji sprowadza się do
instalacji odpowiednich pakietów. Po tym fakcie zazwyczaj serwer uruchamia się samodzielnie i mamy
gotowy system z uruchomionym serwerem baz danych.
upełnie innym problemem jest opracowanie apli- Pierwsza wymieniona zakładka zawiera komponenty GUI
kacji, która korzysta z bazy danych. Problem jest przeznaczone do prezentacji (wizualizacji) danych, czyli m.
ten dość ważny jeśli chcemy napisać typowy pro- in. różnego rodzaju pola edycyjne, a także komponent o na-
Zgram, a nie aplikację sieciową. Wśród głównych zwie DBGrid, który potrafi wyświetlić całą tabelę. Dostępna
środowisk pracy, czyli GNOME oraz KDE zostały wprowa- jest kontrolka kalendarza do wyświetlania pola daty. Istnie-
dzone pakiety wspierające tworzenie aplikacji baz danych. je również komponent do wyświetlania danych graficznych,
Jednakże oprócz tych pakietów dostępne jest jeszcze bar- który jest bardzo przydatny jeśli nasza baza danych oferuje
dzo interesujące środowisko, a mianowicie program Laza- np. dostęp do zdjęć, np. towarów.
rus, czyli darmowy odpowiednik środowiska Delphi. Warto Druga zakładka o nazwie Data Access zawiera aktual-
poznać to środowisko, np. poprzez próbę utworzenia bardzo nie pięć komponentów, przy czym dla nas najważniejszy jest
prostej bazy danych, aby zorientować się, co oferuje Lazarus komponent o nazwie DataSource. Pośredniczy on pomiędzy
na obecnym etapie rozwoju. kontrolkami GUI a kontrolkami bezpośredniego dostępu do
danych, które znajdują się w trzeciej wymienionej zakład-
Dostępne komponenty ce: SQLdb. Obecnie mamy dwanaście komponentów dostę-
do obsługi baz danych pu do danych. Dzielą się one na dwie grupy. Pierwsze o na-
Po uruchomieniu Lazarusa, zobaczymy kilkanaście zakła- zwach TSQLQuery, TSQLTransaction, TSQLScript są odpo-
dek z wieloma dostępnymi komponentami. Kolejne odsło- wiedzialne za odbieranie danych m. in. z zapytania napisane-
ny Lazarusa przynoszą coraz to nowe komponenty, co świad- go w języku SQL. Samo zapytanie jest umieszczane w pierw-
czy o rozwoju całego środowiska. Nas najbardziej interesu- szej wymienionej kontrolce o nazwie TSQLQuery. Pozostałe
ją komponenty związane z bazami danych. W obecnej wersji kontrolki, np. TOracleConnection bądz TMySQL50Connec-
0.9.25 (wersja beta, z połowy czerwca 2008) dostępne są trzy tion zgodnie ze swoimi nazwami są wykorzystywane do na-
zakładki: Data Controls, Data Access oraz trzecia SQLdb. wiązania połączenia z bazy danych. W naszym projekcie na-
42 wrzesień 2008
linux@software.com.pl
Programowanie
Bazy danych/Lazarus
turalnie będziemy korzystać z kontrolki TMy- mularzami). Pierwszym oknem jest formularz wać szybciej i lepiej. Na razie Lazaurs nie ofe-
SQL50Connection, bo za serwer danych wy- o nazwie MainWin, który widzimy tuż po uru- ruje podobnego narzędzia, ale kod zródłowy
bieramy MySQL 5.0. chomieniu naszego programu. Pozostałe czte- całości projektu można przeglądać za pomocą
ry okna oferują nam dostęp do danych. Okno o narzędzia Code browser.
Przykładowa baza danych nazwie TabelaKlientowForm zgodnie ze swo- Oprócz poszczególnych plików zródło-
Jeśli nie mamy bazy danych, którą można wy- ją nazwą, oferuje dostęp do tabeli klientów. Po- wych uzupełnieniem jest jeszcze plik projektu.
korzystać do testów, musimy ją utworzyć. Li- dobnie okna TabelaTowarowForm oraz Lista- Właściwie to istnieją dwa pliki pełniące tą ro-
sting 1. zawiera polecenia SQL dla MySQL, ZamowienForm. Czwarte okno służy do skła- lę. Pierwszy to plik o rozszerzeniu lpi. Zawiera
które tworzą prostą bazę składającą się z trzech dania zamówień i nosi nazwę Zamowienia- on informacje niezbędne dla środowiska, drugi
tabel. Mamy tabelę klienci, gdzie naturalnie Form. plik o rozszerzeniu lpr, to kod zródłowy w Pas-
zgodnie z nazwą znajdują się informacje o Wszystkie okna zapisane są w oddzielnych calu odpowiedzialny za utworzenie formularzy
klientach. W przypadku naszej testowej bazy modulach, które identycznie jak w Pascalu/ oraz uruchomienie aplikacji.
mamy tylko trzy pola: id, imię oraz nazwisko. Delphi firmy Borland nazwane się unitami.
Druga tabela, towary, również zawiera W naszym programie istnieje jeszcze moduł, Podstawowe operacje na oknach
ograniczoną liczbę pól: id, nazwa, cena oraz gdzie zgromadzone są wszystkie komponen- Lazarus to narzędzie typu RAD (ang. Rapid
ilość. Podobnie jak trzecia tabela, zamówienia, ty dostępu do bazy danych. Choć poszczegól- Application Developed), gdzie za pomocą my-
gdzie mamy cztery pola: pierwsze id oraz iden- ne kontrolki dostępu do danych można umiesz- szy bez konieczności pisania kodu zródłowego
tyfikatory kupującego oraz towaru oraz datę czać bezpośrednio na okna, to takie rozwiąza- możemy utworzyć interfejs użytkownika. Waż-
złożenia zamówienia. nie, gdzie wszystkie elementy obsługi danych nym elementem jest Object Inspector, czyli
Choć wymienione tabele to tylko namiastka zostały zgromadzone w jednym miejscu, wpro- okno dialogowe, gdzie podczas projektowania
bazy danych, dla naszego celu  poznania możli- wadza większy porządek do kodu. interfejsu wyświetlane są właściwości kontro-
wości pakietu Lazarus  nadają się znakomicie. Wszystkie te uwagi warto spróbować lek, np. kolor przycisku, ale też wiele innych,
przedstawić jako schemat, podobny do sche- np. parametry połączenia z bazą danych.
Aplikacja testowa matu z Rysunku 1. Protoplasta Lazarusa, czy- W przypadku okien najważniejsze są dla
Nasza aplikacja testowa składa się z pięciu li środowisko Delphi, oferuje nawet narzędzia nas dwie czynności: wyświetlenie okna oraz
okien (w dalszej części będą też nazywane for- UML, które pozwolą podobny schemat opraco- jego zamknięcie. Jeśli chcemy zamknąć okno
START STOP
Nowe zamówienie Okno klientów
Okno towarów
MySQL 5.0
Rysunek 1. Schemat naszej aplikacji
www.lpmagazine.org 43
Programowanie
Bazy danych/Lazarus
główne, co w efekcie doprowadzi do zakończe- nazwa, ZamowieniaForm, to nazwa zmiennej skania połączenia to naturalnie komponent o
nia pracy całego programu, to dla przycisku w reprezentującej formularz do zamówień. nazwie TMySQL50Connection. Po umieszcze-
obsłudze zdarzenia OnClick (wystarczy klik- niu tego komponentu w module danych nale-
nąć na wybrany przycisk dwa razy ) należy do- Dostęp do tabeli klienci ży naturalnie uzupełnić podstawowe własno-
pisać wywołanie metody Close. W Lazarusie sposób dostępu do danych jest ści. Pierwsza to adres maszyny, na której znaj-
Natomiast otwarcie okna w tzw. trybie mo- dość klarowny. Podstawowym obiektem jest duje się serwer  w przypadku testów, gdy ser-
dalnym, czyli nie będzie można przełączyć się obiekt reprezentujący połączenie, następnie wer jest uruchomiony lokalnie, wpisujemy ad-
na inne okno, jest bardzo proste  korzystamy z pojawia się obiekt zapytania, obiekt zródła da- res 127.0.0.1 do własności HostName. Istotna
metody ShowModal: nych i ostatecznie na końcu tego krótkiego łań- jest też nazwa bazy danych, z której korzy-
cucha mamy kontrolkę GUI, gdzie dane może- stamy, czyli w naszym przypadku do własno-
uzamowienia.ZamowieniaForm.ShowModal; my wyświetlić. ści DatabaseName wpisujemy np. db_test_1.
Ponieważ nasza baza danych jest umiesz- Istotne dla połączenia są także pola UserName
Bardzo ważne są zastosowane nazwy: pierw- czona na serwerze MySQL, dlatego pierw- oraz Password. Po wypełnieniu pól z pozio-
sza, u zamowienia, to nazwa modułu. Druga szy komponent jaki jest niezbędny do uzy- mu inspektora obiektów można uzyskać połą-
czenie zmieniając wartość pola Connected z
False na True. Jeśli wszystkie informacje by-
Listing 1. Polecenia SQL tworzące naszą testową bazę danych w systemie MySQL
ły wypełnione poprawnie, uzyskamy połącze-
CREATE TABLE `db_test_1`.`klienci` ( nie z bazą danych.
`id` int(10) unsigned NOT NULL auto_increment, W praktyce pola te są wypełniane z pozio-
`imie` varchar(20) NOT NULL, mu aplikacji, np. przez własne okno dialogowe,
`nazwisko` varchar(45) NOT NULL, toteż uzupełnienie tych pól przedstawia się np.
PRIMARY KEY (`id`) następująco: (Listing 4.)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; Kolejny etap to umieszczenie kontrolki o
nazwie TSQLQuery. Pierwsze pole, jakie uzu-
CREATE TABLE `db_test_1`.`towary` ( pełniamy w inspektorze to pole Database. Na-
`id` int(10) unsigned NOT NULL auto_increment, leży wybrać bądz wpisać nazwę kontrolki TMy-
`nazwa` varchar(45) NOT NULL, SQL50Connection. Połączenie powinno być
`cena` decimal(10,0) NOT NULL, aktywne, ponieważ w tym momencie trzeba
`ilosc` int(10) unsigned NOT NULL, uzupełnić własność SQL, gdzie podajemy treść
PRIMARY KEY (`id`) zapytania  w naszym przypadku zapytanie jest
) ENGINE=InnoDB DEFAULT CHARSET=utf8; bardzo proste:
CREATE TABLE `db_test_1`.`zamowienie` ( select id, imie, nazwisko
`id` int(10) unsigned NOT NULL auto_increment, from klienci;
`kupujacy` int(10) unsigned NOT NULL,
`towar` int(10) unsigned NOT NULL, W tym momencie warto spróbować uaktywnić
`data` datetime NOT NULL, dane poprzez zmianę wartości Active w kon-
PRIMARY KEY (`id`) trolce zapytania na wartość True. Jeśli zapyta-
) ENGINE=InnoDB DEFAULT CHARSET=utf8; nie w SQL nie posiada żadnych błędów, kon-
trolka stanie się aktywna. Aby zobaczyć dane
w tabeli należy jeszcze dodać komponent o na-
zwie TDataSource. We własności DataSet te-
go komponentu wybieramy nazwę kontrolki z
zapytaniem.
W ten sposób zawartość tabeli Klienci
może zostać przedstawiona za pomocą kon-
trolek z zakładki DataControls. Dobrze do te-
go celu nadaje się komponent DBGrid, który
dane z tabeli zaprezentuje w postaci tabelki.
Po umieszczeniu tego komponentu w formu-
larzu należy wpisać (lub wybrać) do własno-
ści DataSource nazwę komponentu DataSo-
Na płycie CD/DVD
Na płycie CD/DVD znajdują się wykorzy-
stywane biblioteki, kod zródłowy programu
oraz wszystkie listingi z artykułu.
Rysunek 2. Aplikacja testowa na warsztacie
44 wrzesień 2008
Programowanie
Bazy danych/Lazarus
urce. Ponieważ w naszym programie wszyst- który dokona odświeżenia zawartości kontrol- złożone zamówienia. Dodatkowo budując za-
kie komponenty dostępu danych zostały zgro- ki DBGrid: pytanie korzystamy z trzech tabel. Treść zapy-
madzone w module o nazwie udatamodule, to tania przedstawia Listing 2.
trzeba ten moduł dołączyć do modułu okna. udatamodule.DataMod.KlienciQuery.Acti Zablokowanie edycji tabeli, wbrew pozo-
Problem ten sprowadza się tylko do dopisania ve:=false; rom, jest bardzo łatwe: w kontrolce zapytania
jednej linii kodu: udatamodule.DataMod.KlienciQuery.Acti zmieniamy własność ReadOnly na True. Od te-
ve:=true; go momentu nie będzie można dopisywać no-
uses udatamodule; wych rekordów.
Lista zamówień i własności pól Kontrolki zapytań mają jeszcze jedną
Wymienioną linię kodu dopisujemy po słowie Analogicznie postępujemy w przypadku tabe- ciekawą funkcjonalność. Jeśli na ikonie ak-
implementation w module utabelaklientow li towary. Natomiast okno z listą zamówień nie tywnej kontroli klikniemy prawym przyci-
(podobnie postąpimy w przypadku pozostałych pozwala na edycję danych, wyświetlamy tylko skiem myszy, to wyświetli się menu kon-
okien). Od tego momentu kontrolki bazodano-
we uzyskają dostęp do zródeł danych.
W ramach uzupełnienia trzeba dodać, że
Instalacja środowiska Lazarus
w przypadku baz SQL należy jeszcze dodać
komponent transakcji, wykorzystywany przez
Niektóre dystrybucje jak np. Ubuntu oferują Lazarusa w swoim zbiorze pakietów, jednak
kontrolki zapytań. Warto także dodać, że za-
zazwyczaj jest to starsza wersja. Dlatego warto pokusić się o instalację wersji testowych.
letą kontroli zapytań jest możliwość budo-
Trzeba także zadbać aby dostępne były biblioteki GTK+, niestety w starszej wersji 1.2.XX.
wania zapytania z kilku tabel. Choć pojawia-
Jak na razie autorzy Lazarusa ciągle nie wykorzystują nowszych wersji GTK+. Ze strony La-
ją się w takim przypadku problemy z aktuali-
zarusa należy więc ściągnąć najnowsze wersje testowe. Dla dystrybucji 32. bitowych ścią-
zacją danych.
gamy następujące pliki:
W przypadku naszego zapytania korzysta
fpc src 2.2.2rc1 20080616.i386.rpm
ono tylko z jednej tabeli, więc aktualizacja nie
fpc 2.2.2rc1 20080616.i386.rpm
sprawia problemów. Jednak trzeba pamiętać, że
lazarus 0.9.25 20080616.i386.rpm
podczas edycji tabeli DBGrid jeśli użytkownik
Naturalnie pliki będą mogą się różnić wersją oraz datą. Instalacja wymaga pakietu rpm, a
zmieni wartości pól bądz dopisze nowy rekord,
odpowiednie polecenie przedstawia się następująco:
to zmiany te nie są natychmiast wprowadzane
do bazy danych. Stanie się dopiero w momen- rpm  i  nodeps fpc src 2.2.2rc1 20080616.i386.rpm
cie wywołania metody ApplyUpdates z obiek-
Opcja  nodeps jest niezbędna np. w Ubuntu, ponieważ w tej dystrybucji podstawowym na-
tu zapytania. Dlatego w oknie klientów, istnie-
rzędziem do pakietów jest dpkg, a program rpm będzie zgłaszał błąd, że brakuje praktycz-
je przycisk o nazwie Aktualizacja danych oraz
nie jakiegokolwiek pakietu. Jednakże zazwyczaj nie ma problemów i Lazarus instaluje się
dodatkowo po kliknięciu na przycisk O.K.,
i pracuje bez większych kłopotów.
przed zamknięciem okna również wywołuje-
my tę metodę:
DataMod.KlienciQuery.ApplyUpdates;
Warto też zadbać o odświeżanie danych w kon-
trolach. Służy do tego metoda Refresh wywo-
łana z kontroli DBGrid:
KlientTable.Refresh;
Dobrym sposobem (dość często najlep-
szym) jest również ponowna aktywacja zró-
dła danych. Przed wyświetleniem okna z ta-
belą klientów warto dopisać następujący kod,
Listing 2. Zapytanie SQL, które generuję listę
złożonych zamówień
select k.imie, k.nazwisko,t.name,
t.cena,z.data
from zamowienia z,klienci k,towary
t
where z.kupujacy = k.id and z.towar
= t.id;
Rysunek 3. Tworzenie tabeli klienci w programie MySQL Administrator
www.lpmagazine.org 45
Programowanie
Bazy danych/Lazarus
tekstowe, gdzie pierwszą opcją do wyboru
Listing 3. Wystawanie nowego zamówienia
powinno być Edit Fields (można też klik-
procedure TZamowieniaForm.NewOrderBTNClick(Sender: TObject); nąć dwukrotnie na ikonę kontrolki zapyta-
var nia). Jeśli uruchomimy po raz pierwszy tę
t : integer; opcję okno, które się pojawi będzie puste,
begin jednak wystarczy ponownie wywołać okno
DataMod.ZamowieniaQuery.Insert; menu kontekstowego prawym przyciskiem.
DataMod.ZamowieniaQuery.FieldByName('kupujacy').AsInteger:=klient_id; Tym razem wyświetlone menu będzie zawie-
DataMod.ZamowieniaQuery.FieldByName('towar').AsInteger:=towar_id; rać opcję Add Fields, za pomocą której do-
DataMod.ZamowieniaQuery.FieldByName('data').AsDateTime:=Now; damy istniejące pola. Istnieje nawet możli-
DataMod.ZamowieniaQuery.Post; wość tworzenia pól dynamicznych, jednakże
DataMod.ZamowieniaQuery.ApplyUpdates; nas interesują dodatkowe własności poszcze-
gólnych pól. Jeśli dodaliśmy wszystkie pola,
if DataMod.TowaryQuery.Locate('id', towar_id, []) = true then wybierzmy dla przykładu pole imie. Może-
begin my zmienić etykietę, jaka jest wyświetlana
t:=DataMod.TowaryQuery.FieldByName('ilosc').AsInteger; w kontrolce DBGrid, wystarczy tylko do wła-
DataMod.TowaryQuery.Edit; sności DisplayLabel wpisać ciąg Imię. W
DataMod.TowaryQuery.FieldByName('ilosc').AsInteger:=t tym miejscu można także ograniczyć liczbę
StrToInt(CountEDT.Text); wyświetlanych znaków DisplayWidth a tak-
DataMod.TowaryQuery.Post; że z pomocą własności LookupDataSet, Lo-
DataMod.TowaryQuery.ApplyUpdates; okupKeyFields, LookupResultField utwo-
end; rzyć słownik dla danego pola. Inaczej mó-
SpisTowarow.DataSource.DataSet.Refresh; wiąc, podczas edycji tego pola, użytkownik
end; będzie miał możliwość wyboru wartości ze
wcześniej przygotowanej listy.
Takie rozwiązanie upraszcza konfigura-
cję komponentu DBGrid, bo choć kontrolka
DBGrid posiada możliwość oddzielonego kon-
figurowania poszczególnych kolumn, to przy-
gotowanie opisu pól już w kontrolce zapyta-
nia oznacza, że dane te będą wykorzystywane
samodzielnie przez DBGrid i nie będzie trzeba
oddzielnie dla każdej kontrolki ustalać tych sa-
mych parametrów.
Składanie zamówień
Odczytanie danych i wyświetlenie ich za po-
mocą konkretnych kontrolek nie jest trudne.
Jedyny problem to API komponetów. Jed-
nakże nazwy poszczególnych metod są ja-
sne, dostępny jest kod zródłowy całej biblio-
teki, a samo edytor podpowiada nazwy me-
tod oraz ich parametry. Naszym zadaniem
jest wpisanie do bazy nowych informacji o
zamówieniu.
W oknie znajdują się dwie tabele. Jedna
wyświetla informacje o klientach, natomiast
druga wyświetla dostępne towary. Oprócz
tych dwóch tabel dostępne są także dodatko-
we kontrolki DBText, w których wyświetla-
my identyfikator i raz jeszcze imię oraz na-
zwisko. W ten sposób, jeśli użytkownik wy-
bierze jeden z wierszy, w tych komponen-
tach pojawi się identyfikator oraz imię i na-
zwisko wybranej osoby. Podobnie w przy-
padku towaru.
Złożenie zamówienia polega na tym, że
użytkownik z tabel musi wybrać osobę i to-
Rysunek 4. Testowanie zamówień war, który dana osoba chce zamówić, po
46 wrzesień 2008
Programowanie
Bazy danych/Lazarus
czym w polu Ilość podaje się, ile jednostek nakże aby rekord ten został przesłany do ser- ciągów znaków nie będzie brana pod uwagę
danego towary należy zamówić. W praw- wera celowo wywołujemy jeszcze metodę Ap- wielkość liter.
dziwiej bazie danych to zadanie byłoby na- plyUpdates. Po odszukaniu rekordu, co zawsze się uda,
turalnie bardziej złożone. Jednakże, oznacza Druga ważna dla nas czynność to zmia- ponieważ jest to rekord wskazany przez nas,
to że trzeba do tabeli zamówień dopisać no- na ilości wybranego towaru. Możemy to zre- odczytujemy aktualną wartość pola ilosc.
wy rekord oraz uaktualnić wybrany rekord z alizować za pomocą odpowiedniego zapyta-
towarem. nia SQL, jednak samo API Lazarusa oferu- t:=DataMod.TowaryQuery.FieldByName('i
Listing 3. prezentuje kod, który jest odpo- je odpowiednie funkcje. Gdy chcemy wyszu- losc').AsInteger;
wiedzialny za dodanie nowego rekordu oraz kać dany rekord, najlepiej za pomocą pola ID
zmianę ilości towaru. Pierwsza część dopisuje czyli klucza głównego, wykorzystujemy funk- Sam proces uaktualnienia pola ilosc jest bar-
nowy rekord. Proces ten rozpoczyna się od wy- cję Locate. Odszukanie rekordu, wskazanego dzo podobny do wstawienia nowego rekor-
wołania metody Insert: przez nas wcześniej, realizujemy w następu- du, ale rozpoczyna się od wywołania meto-
jący sposób: dy Edit. Następnie raz jeszcze korzystamy
DataMod.ZamowieniaQuery.Insert; z metody FieldByName aby zmienić wartość
DataMod.TowaryQuery.Locate('id', pola ilosc.
Wywołanie tej metody powoduje wstawienie towar_id, [])
nowego rekordu gotowego do uzupełnienia. Podsumowanie
Oznacza to, że tabela przechodzi do trybu edy- Ponieważ Locate jest funkcją, to jeśli uda Przedstawiona baza danych to tylko prosty pro-
cji. Wpisanie danych jest realizowane za pomo- się odszukać wskazany rekord, zostanie jekt, ale jak widać pokazuje, że już w tej chwili
cą metody FieldByName. Metoda współpracu- zwrócona wartość True, przeciwnym przy- Lazarus nadaje się do tworzenia aplikacji, któ-
je z wieloma typami pól, bowiem tak jak wi- padku False. Pierwszym argumentem są re mogą dość swobodnie korzystać z baz da-
dać na Listingu 3., do pól kupujacy oraz towar naturalnie nazwy pól rozdzielone średni- nych i co ważne bez kłopotów współpracują
wpisujemy liczby całkowite, natomiast do po- kiem, drugim jest tablica wariantowa, opi- z darmowymi rozwiązaniami jak MySQL al-
la data już specjalny typ reprezentujący aktu- sująca wartości poszukiwanych pól. W na- bo PostgreSQL.
alną datę i czas. szym przypadku jest to tylko jedna war- Wiele osób zapewne stwierdzi, że Laza-
Na zakończenie procesu dodawania rekor- tość. Ostatni argument jest typem zbioro- rus to dobry oraz interesujący projekt, tylko
du należy wywołać metodę Post. Zakończy wym, gdzie umieszczamy dodatkowe opcje, szkoda, że nie stosuje języka C++. Przy oka-
ona proces dodawania nowego rekordu, jed- np. loCaseInsensitive oznaczająca, że dla zji nie omieszka również dodać uwagi o tym,
że Pascal jest mniej popularny. Co do popular-
Listing 4. Podstawowe informacje o użytkowniku i haśle podawane w kodzie zródłowym
ności, to istotnie wiele projektów, w tym wie-
DataMod.MySQL50Connnect.UserName :=  root ; le programów pracujących z bazami danych
DataMod.MySQL50Connnect.Password :=  root ; jest realizowanych w C++. Ważniejsze są jed-
DataMod.MySQL50Connnect.DataBaseName :=  db_test_1 ; nak możliwości, jakie oferowane są przez La-
DataMod.MySQL50Connnect.Connected := true; zarusa, a te z wersji na wersję są coraz więk-
sze. Również wersja języka Pascal dostępna w
środowisku Lazarus oferuje wiele nowych ele-
mentów, jak np. możliwość przeciążania ope-
W Sieci
ratorów oraz wzorce.
Choć aktualna wersja Lazarusa nie posia-
" Główna strona o projekcie Lazarus: http://www.lazarus.freepascal.org/
da jeszcze komponentów do szybkiego two-
" Strona domowa projektu MySQL: http://www.mysql.com/
rzenia raportów, brakuje dobrej dokumenta-
" Pakiet dodatkowych komponentów do obsługi baz danych ZeosLIB:
cji, to w zakresie tworzenia podstawowego
http://zeos.firmos.at/
GUI dla baz danych podstawowe komponen-
ty są wystarczające. Warto wypróbować Laza-
rusa, tym bardziej, że pojawia się coraz więcej
Instalacja komponentów ZeosDB
komponentów oraz projektów tworzonych wła-
śnie w Lazarusie oraz naturalnie w języku Fre-
Choć w artykule nie omawiamy komponentów ZeosDB, to warto o nich wspomnieć oraz
ePascal.
podać sposób ich instalacji. Instalację dodatkowego zbioru komponentów, należy rozpo-
cząć od ściągnięcia archiwum ze strony projektu ZeosDB, np. ZEOSDBO 6.6.2 rc.zip.
Plik ten trzeba poddać dekompresji, np. poleceniem: unzip ZEOSDBO 6.6.2 rc.zip. Wła-
ściwą instalację rozpoczynamy od otworzenia właściwego pakietu. Pakiet ten o nazwie
O autorze
zcomponent.lpk, znajduje się w katalogu packages oraz lazarus. W oknie dialogowym pa-
kietu wybieramy naturalnie opcję Compile, a po kilku chwilach, kiedy pakiet zostanie skom-
Autor zajmuje się tworzeniem oprogramo-
pilowany należy go zainstalować wybierając opcję Install. W przypadku obecnej wersji La-
wania dla WIN32 i Linuksa. Zainteresowa-
zarusa, wymaga to kompilacji całego środowiska, co również zabiera sporo czasu. Po za-
nia: teoria języków programowania oraz
kończeniu kompilacji warto odszukać plik wykonywalny, ponieważ zazwyczaj są dołączane
dobra literatura.
informacje dla debuggera, co powoduje że plik wykonywalny Lazarusa, może ważyć nawet
Kontakt z autorem: autorzy@linux.com.pl
60  80MB. Wystarczy użyć polecenia strip aby usunąć nadmiarowe informacje.
www.lpmagazine.org 47


Wyszukiwarka

Podobne podstrony:
@PSI W14a Platforma NET Kolekcje dostęp do danych
WykladSIT Organizacja dostępu do danych przestrzennych(1)
06 Warstwowy dostęp do danych (prezentacja)ida68
Dostęp do poczty z sieci Internet poprzez program Outlook Express i protokół POP3
Hurtownie danych czyli jak zapewnic dostep do wiedzy tkwiacej w danych
Algorytmy i struktury danych Programy do wykladu 3
09 Efektywne przeszukiwanie danych w programie Access
Zadania do 2 Kolokwium (2008 09)
Dostęp do poczty z sieci Internet poprzez program Outlook Express i protokół IMAP4
2006 09 Programowanie i bazy danych [Programowanie]
2008 09 Wine Importer Running Windows Programs on Linux with Wine
Opinie uczniów gimnazjów na temat dostępności do nielegalnych substancji psychoaktywnych i przyczyn
Prezentacja na zajęcia dostęp do informacji publicznej 9 10 2015 (1)
Dostęp do informacji publiczej zawartej w dokumentach osób ubiegających się o pracę
I kolokwium 2008 09

więcej podobnych podstron