Po wcześniejszych artykułach dot. tematyki baz danych (
instalacja serwera mysql, spis polecen sql, interfejs bazodanowy zeoslib) czytelnik jest gotów do napisania pierwszej aplikacji bazodanowej.Pierwszy program, wcale nie znaczy o małej funkcjonalności.Wręcz przeciwnie.Możliwości tego programu są ogromne.A więc zaczynamy.
Na komputerze lokalnym uruchomiono bazę danych MySQL 5 na porcie 3306, o nazwie test oraz tabeli tasks, o haśle dostępu nowe dla użytkownika root.Poniższa aplikacja korzystać będzie z tych ustawień.
Z palety komponentów Zeos Access kładziemy na formę komponenty: ZConnection1, ZTable1 oraz ZSQLMonitor1.
Ponadto: z palety komponentów Data Access DataSource1, z Data Controls DBGrid1 oraz DBNavigator1.Dalej 1 Button oraz 1 Memo.
Przyciskiem Button będziemy łączyć się z bazą, Memo natomiast posłuży do wyświetlania zapytań kierowanych do bazy danych.
Teraz pora na powiązanie ze sobą właściwości tychrze komponentów.
Zaczynamy od
ZConnection1 i zmiany odpowiednich wartości w inspektorze obiektów:
Database: test
HostName: localhost
Password: nowe
Port: 3306
Protocol: mysql-5
user: root
W tym miejscu dodam 2 rzeczy: interfejs ZeosLib obsługuje następujące bazy danych
- ADO
- ASA 7, 8, 9
- firebird 1.0, 1.5, 2.0, firebirdd 1.5, 2.0
- interbase 5, 6
- mssql
- mysql 4.1, 5, mysqld 4.1, 5
- oracle, oracle 9i
- postgresql 7, 8
- sqllite 2.8, 3
- sybase
Lista całkiem spora.
Do katalogu z projektem kopiujemy plik libmySQL50.dll. Bez tego aplikacja nie będzie działać.
Komponent
ZTable1:
Connection: ZConnection1
MasterSource: DataSource1
Komponent
DataSource1:
DataSet: ZTable1
Komponent
DBGrid1:
DataSource: DataSource1
Komponent
DBNavigator1:
DataSource: DataSource1
Komponent
ZSQLMonitor1:
Active: true
ZSQLMonitor będzie spełniał rolę diagnostyczną w programie.
Zdarzenie OnLogTrace dla ZSQLMonitor1 uzupełniamy następującym kodem:
Memo1->Lines->Add(Event->AsString());
|
Zdarzenie OnClick dla Button1 uzupełniamy następującym kodem:
ZTable1->TableName = "tasks"; ZConnection1->Connect(); ZTable1->Active = true;
|
W tym momencie program da się skompilować oraz będzie pobierał dane z bazy MySQL.
Po skompilowaniu programu oraz kliknięciu przycisku Button1, na Memo1 zostanie wypisane:
2008-01-18 11:13:16 cat: Connect, proto: mysql-5, msg: CONNECT TO "test" AS USER "root"
2008-01-18 11:13:16 cat: Execute, proto: mysql-5, msg: SELECT * FROM tasks
2008-01-18 11:13:16 cat: Execute, proto: mysql-5, msg: SHOW TABLES FROM test LIKE 'tasks'
2008-01-18 11:13:16 cat: Execute, proto: mysql-5, msg: SHOW COLUMNS FROM test.tasks LIKE '%'
Aby dodatkowo pobrać np.
ilość rekordów z bazy danych, kładziemy na formę dodatkowy komponent Label1 oraz dopisujemy linijkę w zdarzeniu OnClick przycisku Button1
za dotychczasowym kodem:
Label1->Caption = IntToStr(ZTable1->RecordCount);
|
Rezultat naszej pracy widać na poniższym obrazku (
kliknij aby powiększyć).