KOMPONENT DAC FOR MYSQL UŁATWIAJĄCY PRACĘ W DELPHI Autor: inż. Rafał KARCZMARZ Promotor: dr inż. Marek MIŁOSZ Wstęp Ciągły rozwój świata wywiera presję na pracodawcach, związaną z poszukiwaniem sposobu na optymalizację pracy swoich pracowników. Dynamiczny rozwój sieci informatycznych w ostatnich latach spowodował rozwój wielu środowisk wspomagających pracę programistów. Jednym z nich a jednocześnie językiem pozwalającym na tworzenie aplikacji jest język Delphi. Delphi jest środowiskiem typu RAD (ang. Rapid Application Development), czyli środowiskiem szybkiego tworzenia aplikacji. Technologia ta umożliwia tworzenie aplikacji z wykorzystaniem gotowych komponentów i bibliotek. Aplikację w Delphi można tworzyć na dwa sposoby: 1. Typowo za pomocą zwykłego kodu pisanego przez programistę w języku Delphi, gdzie każdy komponent jest tworzony i ustawiany za pomocą komend. 2. Z wykorzystaniem RAD (wizualnie) za pomocą myszki umieszczając interesujące nas bloki komponentów na obszarze projektowanej aplikacji. Wykorzystując ten drugi sposób, to aplikacja zadba o wygenerowanie odpowiedniego kodu deklarującego dane elementy, a do zadań programisty zostanie jedynie zakodowanie logiki działania aplikacji. Drugie podejście znacząco przyspiesza proces tworzenia aplikacji. 1. DAC for MySQL Jednym z elementów Delphi jest komponent DAC for MySQL, wyprodukowany przez firmę MicroOlap. DAC pozwala wykorzystywać w tworzonych programach bezpośrednie połączenia z serwerami baz danych MySQL. Twórcy tego oprogramowania zadbali o wsparcie dla wszystkich istniejących wersji Delphi, tych starszych, jak i tych najnowszych. Końcowe pliki wykonawcze (z rozszerzeniem.exe) są powiększane jedynie o ok. 300-400KB 2011-12-29 Strona 1
kodu obsługi komponentu w całości napisanego w Delphi, dzięki czemu nie muszą być dołączane żadne zewnętrzne moduły z MySQL(nawet libmysql.dll). W tab. 1 zaprezentowano komponenty dostępne w DAC for MySQL. Tab.1. Komponenty dostępne w DAC for MySQL [3] Lp. Ikona Nazwa Opis 1. TBDE2MySQLDAC Ten komponent pozwala w łatwy sposób przeprowadzić konwersję z baz danych BDE, ZeosDB, dbexpress, ADO do obiektów DAC baz danych MySQL, co pozwala w łatwy i szybki sposób migrować nasza aplikacje 2. TmySQLBatchExecute Składnik ten pozwala wykonywać skrypty SQL które zawierają więcej niże jedną instrukcje SQL. Instrukcje te musza być od siebie oddzielone separatorem (domyślnie znakiem ; ) 3. Zapewnia dyskretną kontrolę nad połączeniem TmySQLDatabase do bazy danych w aplikacjach korzystających z baz danych. 4. TmySQLDirectQuery pozwala na szybkie wykonywanie zapytan SQL i pobieranie ich wyników. TmySQLDirectQuery Pobieranie to jest 3-4 razy szybsze niż w przypadku wykorzystania komponentu TmySQLQuery, jednak nie można prezentować pobranych danych 5. Komponent ten umożliwia generowanie skryptu SQL z TmySQLDump bazy danych 6. TmySQLMacroQuery dziedziczy po TmySQLQuery TmySQLMacroQuery rozszerzając go o Macros and MacroChar, które to pomagają modyfikować treść skryptu SQL 7. Składnik ten pozwala na wykorzystanie dynamicznego TmySQLMonitor kodu SQL-a 8. Komponent ten pozwala na wykonywanie zapytań (do TmySQLQuery jednej lub wielu tabel z bazy danych) 2011-12-29 Strona 2
9. 10. 11. 12. TmySQLStoredProc TmySQLTable TmySQLTools TmySQLUpdateSQL i przetwarzania ich wyników Składnik pozwala na wykonywanie procedur przechowywanych w bazie danych. Rozszerza TDataSet, co pozwala na wykonywanie zapytań z możliwością składowania ich wyników lub tez nie. Zapewnia pełne wsparcie dla MySQL 5.0 TmySQLTable udostępnia bezpośredni dostęp do danych z jednej tabeli, pozwalając na dostęp do każdego z jej rekordów jak i pól TmySQLTools pozwala na uruchamianie narzędzi diagnostycznych baz danych SQL takich jak naprawa, sprawdzanie, analiza, optymalizacja kopii zapasowych i przywracanie kopii zapasowych. Warto zauważyć iż nie wykonuje tych operacji bezpośrednio na sobie lecz generuje zapytania wykonywane po stronie serwera Komponent ten pozwala na zmianę procedur składowanych w bazie danych 2. Przykład wykorzystania Najprostszym przykładem wykorzystania DAC jest tabela prezentująca dane pobrane z tabeli. Jego zastosowanie zostanie przedstawione na przykładzie. Do wykonania jego zostanie wykorzystane 4 elementy (ich postać graficzną przedstawia rys. 1): TmySQLDatabase TmySQLQuery TDataSource TXDBGrid 2011-12-29 Strona 3
Rys.1. Komponenty wykorzystane w przykładzie W komponencie TmySQLDatabase należy ustawić w inspektorze obiektów następujące parametry (rys. 2): DatabaseName nazwa bazy z jakiej będzie aplikacja korzystać, UserName nazwa użytkownika bazy danych, UserPassword hasło do bazy danych wyżej wskazanego użytkownika, Connected - ustawiony na true (połączenie należy ustawić jako ostatni parametr, ponieważ korzysta z ustawień powyższych właściwości podczas tworzenia połączenia). 2011-12-29 Strona 4
Rys. 2. Widok inspektora obiektu TmySQLDatabase W elemencie TmySQLQuery ustawia się w wartości SQL treść zapytania SQL, którego wynik potrzebny jest aplikacji oraz wartość parametru Active na wartość true (rys. 3). 2011-12-29 Strona 5
Rys.3. Okno wpisania zapytania SQL dla komponentu TmySQlQuery oraz widok jego inspektora obiektów Wartość parametru DataSet komponentu TDataSource ustawia się na wartość Name elementu TmySQlQuery. Rys. 4. Okno inspektora obiektów elementu TDataSource 2011-12-29 Strona 6
Aby móc zobaczyć wyniki pracy wykonanej przy konfigurowaniu wcześniejszych elementów należy w TXDBGrid ustawić (rys. 5) DataSource na wartość, która była ustawiona w wartości Name komponentu TDataSource. Teraz wyniki naszej pracy będą widoczne w elemencie TXDBGrid podczas uruchomiania aplikacji, którą można najszybciej wykonać za pomocą klawisza F9. Rys. 5. Inspektor obiektu TXDBGrid Podsumowanie Ten prosty przykład pokazuje, że komponent DAC for MySQL w znaczącym stopniu ułatwia prace programisty, szczególnie w bardziej złożonych i skomplikowanych aplikacjach. Wykorzystanie baz danych MySQL zapewnia szybkość i niezawodność działania, pracownicy korzystający z programów wspomagających prace mogą swoje zadania wykonywać szybciej i w krótszym czasie. 2011-12-29 Strona 7
Literatura 1. Adam Boduch: Kompendium wiedzy Delphi 2005. Wydawnictwo Helion, 2005 2. http://www.microolap.com/ 3. Pomoc programu DAC for MySQL 2011-12-29 Strona 8