Witam. Czas na drugi art dotyczący DirectSQL.
W tej części dowiemy się jak wykonać zapytanie do bazy i co najważniejsze jak obsłużyć oraz wyświetlić wynik otrzymany z bazy danych.

Zakładam że:
– zaznajomiłeś się z pierwszą częścią kursu
– umiesz używać StringGrid’a w Delphi

Potrzebujemy:
– źródła z załącznika z pierwszego arta
– kilka przycisków na formatce
– komponent StringGrid na formie

Przed przystąpieniem do właściwej części tej części kursu chciałbym zademonstrować kilka przydatnych operacji dotyczących komunikacji z serwerem baz danych.

Będę po krótko opisywał funkcje oraz podawał przykładowy kod przycisku, który ją wykorzystuje.

1) Reset połączenia – Reconnect – przydatne, gdy z jakiś powodów nagle stracimy połączenie z serwerem lub połączenie zaczyna działać nie stabilnie ( czas wykonywania zapytań wydłuża się). Reconnect jest funkcją analogiczną do Connect tzn.: zwraca TRUE przy bezproblemowym resecie połączenia lub FALSE podczas wystąpienia błędów.

2) Ping – szybkie sprawdzenie stanu połączenia. Podobnie jak przy „pingowaniu” komputerów w sieci. Jeśli ping działa połączenie jest aktywne. Zwraca TRUE lub FALSE.

3) Stat – służy do wyświetlania statystyki serwera zawierającej np.: średnią ilość wykonywanych zapytań na sekunde, ilość zadanych zapytań, ilość połączeń itp.

Ok., teraz czas na pierwsze operacje na serwerze dotyczące baz danych.

1) Create_db (nazwa : string) – funkcja tworząca nową bazę danych na serwerze. Jeśli zwraca TRUE oznacza to, że baza została utworzona w przeciwnym wypadku FALSE

2) drop_db (nazwa : string) – funkcja usuwająca bazę danych na serwerze. Jeśli zwraca TRUE oznacza to, że baza została usunięta, w razie problemów zwraca FALSE

3) Select_db(nazwa : string) – funkcja pozwalająca na zmianę bazy na której operujemy. Jeśli zwraca TRUE oznacza to, że baza została zmieniona w przeciwnym wypadku FALSE

 

W tym momencie umiemy tworzyć bazy danych, usuwać je oraz zmieniać. Czas wykonywanie poleceń i obsługa wyników.

1) Jak wygląda sprawa z zapytaniami?? Bardzo prosto, co ilustruje poniższy kod. Na początku sprawdzamy (kontrolnie) czy obiekt, pod który będziemy podstawiać rezultat istnieje. Następnie kontrola stanu serwera, jeśli można wykonać zapytanie wykonujemy go funkcją Query.

 

Powyższą procedurę można skrócić do jednej linijki a mianowicie:
MySQLResult := MySQLClient.query( 'Select * from user’ , true, ex);
Jednak chcąc utworzyć coś większego opartego na więcej niż jednej tabeli oraz na serwerze zdalnym należy zastosować funkcje kontrolne dla pewności wykonania zapytania.

2) Skoro już mamy wynik naszego zapytania to czas na wyświetlenie zdobytych informacji
Kod poniżej jest odpowiedzialny za wyświetlenie wyniku zapytania w komponencie StringGrid. Jak możemy zauważyć mamy dostęp nie tylko do wyników samego zapytania ale także do wszelkich danych o kolumnie w tabeli z której pobieramy dane. W kodzie poniżej wykorzystałem tylko jedną z danych o kolumnie tj.: jej nazwa. Poza tym mamy dostęp do typu, rozmiaru i innych ciekawych informacji.

Teraz jesteś już gotowy na tworzenie aplikacji bazodanowych nie wykorzystując żadnych komponentów. Oczywiście to, co przedstawiłem stanowi jedynie podstawy do dalszego rozwoju oraz pogłębiania wiedzy dotyczącej DirectSQL.

Mam nadzieje, że te artykuły były dla Was przydatne.

POZDRAWIAM
GOOFYX

Autor: Goofyx

Załączniki