www.mamboteam.com
Project1.pl Advertisement
Start arrow Artykuły arrow Praktyczne wykorzystanie Delphi arrow Aplikacje bazodanowe w Delphi
piątek, 10 wrzesień 2010
 
 
Menu główne
Start
Artykuły
FAQ
Download
Kontakt
Ciekawe linki
Mapa serwisu
Logowanie





Zapomniałeś hasła?
Nie masz konta? Załóż sobie
Aplikacje bazodanowe w Delphi Drukuj E-mail
Oceny: / 0
KiepskiBardzo dobry 
Napisał: Berl   
wtorek, 06 wrzesień 2005
Jednym z ciekawszych zagadnień związanych z programowaniem w Delphi jest pisanie własnych baz danych, opartych na tabelach, utworzonych wcześniej przy użyciu Database Desktop, wchodzącego w skład Borland Delphi 5.0. W tym przykładzie zajmiemy się tworzeniem aplikacji służącej do katalogowania posiadanych w klaserze znaczków pocztowych. W pierwszej kolejności należy się zastanowić, jakie dane dotyczące znaczków chcielibyśmy umieścić w naszej bazie. Nie znam się na znaczkach, ale wydaje mi się, że znaczącymi danymi są : rok wydania znaczka, państwo, w którym znaczek został wydany, numer strony klasera, na której znaczek się znajduje, oraz datę pozyskania przez nas tego znaczka. Załóżmy, że jesteśmy doświadczonymi zbieraczami znaczków i posiadamy w swojej kolekcji znaczki warte kilkaset złotych, dlatego dodatkową cechą każdego znaczka będzie jego cena. Dodatkowo mamy trochę poprzestawiane w głowie na temat znaczków i dlatego każdy nasz znaczek będzie posiadał swoją własną nazwę.





Na początku zajmiemy się tworzeniem tabeli znaczków. W tym celu należy uruchomić program Database Desktop, wybierając z górnego menu Tools\Database Desktop. Po uruchomieniu powyższego programu z górnego menu wybieramy File\New\Table. W oknie 'Create table' wybieramy typ tabeli - proponuję 'dBASE for Windows' i klikamy OK. Stworzyliśmy w ten sposób pustą tabelę. Musimy teraz zdefiniować nazwy pól oraz ich typy. Uczyńmy to według poniższej tabelki:

Lp.: Field name: Type: Size: Dec:
1 NAZWA_ZNAC C 30
2 ROK_WYDANI N 4 0
3 PANSTWO C 15
4 NR_STRONY N 3 0
5 DATA_UZYSK D
6 CENA F 5 2

Następnie klikając przycisk 'Define...' przechodzimy do definiowania indeksów. Wybieramy NAZWA_ZNAC klikając na nim i wybieramy dla niego opcję 'Unique'. Klikamy OK i w polu które pojawi się następnie też klikamy OK. Następnie tak przygotowaną tabelę zachowujemy jako 'znaczki.dbf' klikając 'Save As...' wybierając katalog, w którym zdecydowaliśmy się trzymać nasz projekt. Po tej operacji możemy już zamknąć Database Desktop.

Następnie należy utworzyć aplikację, która będzie obsługiwała wykonaną przez nas tabelę. W tym celu z menu górnego edytora Delphi wybieramy 'File/New...', a z okna 'New Items' wybieramy 'Application'. Następnie, wypróbowanym przeze mnie sposobem, należy zachować projekt w katalogu, w którym znajduje się zachowana przez nas wcześniej tabela, aby ustawić katalog w którym trzymamy tabelę jako aktualny. Ułatwi to późniejszą "konfigurację" komponentów.

Przystępujemy teraz do przenoszenia na formularz potrzebnych komponentów. W tym celu klikamy na zakładkę Data Access i przenosimy na form ę komponenty: DataSource i Table. Umieszczamy je gdzieś na obrzeżu formy, aby nie przeszkadzały. Ustawiamy ich właściwości :

Table1:
TableName = 'znaczki.dbf'
Active = True

Konieczne jest zachowanie powyższej kolejności, ponieważ przy ustawianiu komponentu Table jako aktywnego wymagana jest znajomość nazwy bazy, z której pobieramy dane.

DataSource1:
DataSet = 'Table1'

Następnie przechodzimy do zakładki Data Controls i wybieramy z niej następujące komponenty: DBGrid, dwa razy komponent DBEdit. Ustawiamy ich właściwości :

DBGrid1:
DataSource = DataSource1

DBEdit1: DataSource = DataSource1
DataField = 'DATA_UZYSK'

DBEdit2: DataSource = DataSource1
DataField = 'CENA'

Z zakładki Standard wybieramy teraz dwa komponenty Label, jeden z nich umieścimy nad polem DBEdit1, a drugi nad polem DBEdit2. Ustawiamy ich właściwości :

Label1:
Caption = 'Data uzyskania znaczka:'

Label2:
Caption = 'Cena znaczka:'

Przydałoby się zrobić także przycisk, którym będziemy wychodzić z programu. W tym celu z zakładki Standard wybieramy komponent Button i ustawiamy jego właściwości :

Button1:
Caption = 'Wyjdź z programu'

Musimy jeszcze zdefiniować procedurę odpowiadającą za obsługę kliknięcia na ten przycisk. W tym celu w oknie Object Inspectora przechodzimy do zakładki Events i wybieramy zdarzenie OnClick, klikając na nie dwukrotnie myszą. Można też zrobić to klikając po prostu dwukrotnie na komponent Button1. Piszemy funkcję odpowiadającą za wyjście z programu:
 
procedure TForm1.Button1Click(Sender: TObject);
begin
    Close;
end;
W ten sposób mamy ogólny zarys programu zarządzającego naszymi znaczkami. Nie wygląda on jednak zbyt imponująco, brakuje mu kilku przydatnych opcji, tabela jest dosyć nieczytelna przez rażące nagłówki. Postarajmy się to naprawić.

Najpierw zajmijmy się wyglądem zewnętrznym naszego programu. Na początek ustalimy, które pola chcemy widzieć w tabeli, a których nie. Klikamy prawym przyciskiem myszy na komponencie DBGrid i z menu podręcznego wybieramy Columns Editor... . Następnie klikamy na ikonie Add All Fields. Klikamy na pole 1 - DATA_UZYSK i wciskamy ikonę Delete Selected. To samo robimy z polem CENA. Teraz ustalimy nazwy poszczególnych kolumn. Nie wychodząc z Column Editora klikamy na pole NAZWA_ZNAC. W oknie Object Inspectora rozwijamy menu Title. Wybieramy właściwość Caption i wpisujemy tam Nazwa znaczka. To samo robimy z pozostałymi polami tabeli, nazywając je: Rok wydania, Państwo i Numer strony. Przechodzimy teraz do formularza i zmieniamy wielkość komponentu DBGrid, aby wszystko wyglądało dobrze.

Załóżmy, że nasza kolekcja znaczków ma znaczne rozmiary i nie bardzo pamiętamy, gdzie jest każdy znaczek, a bardzo chcielibyśmy pokazać go kolegom. Dobrze by było znaleźć taki znaczek w tabeli na podstawie jego nazwy, i uzyskać od razu komplet informacji na jego temat. Dodajemy do formularza komponent Button z zakładki Standard. W oknie Object Inspectora nadajemy mu następujące właściwości :

Button2:
Caption = 'Wyszukaj znaczek'

Klikamy teraz dwukrotnie na komponencie Button2, aby móc napisać obsługę zdarzenia OnClick. Chcemy, aby na podstawie prowadzonych danych program sam wyszukał odpowiedni wiersz w tabeli, nawet gdybyśmy pomylili się nieco we wpisywaniu nazwy znaczka.
 
procedure TForm1.Button2Click(Sender: TObject);
var
nazwa : string[30];
begin
    nazwa := inputBox('Wczytywanie nazwy znaczka','Podaj nazwę znaczka','');
    if table1.locate('NAZWA_ZNAC',nazwa,[LoCaseInsensitive]) then
        showmessage('Znalazłem znaczek o nazwie ' + table1['NAZWA_ZNAC']+'.')
    else
        showmessage('Brak nazwy podobnej do '+nazwa+'.');
end;
W ten sposób uzyskaliśmy prostą bazę danych, napisaną w Delphi. Przy tworzeniu Install Shieldem programu instalacyjnego nie można zapomnieć o dodaniu w oknie Specify InstallShield Objects for Delphi następujących obiektów: BDE (Borland Database Engine), BDE Control Panel File, Database Component Packages, BDE Database Component Packages. Bez tych elementów program nie będzie działać.
Komentarze

Aby dodać komentarz zaloguj się. Jeśli nie masz konta, załóż je sobie.
Tylko zarejestrowani użytkownicy mogą pisać komentarze.

 
wstecz   dalej »
LINKUJ PRO
Gościmy
Odwiedza nas 15 gości
Licznik odwiedzin
117622
 
Góra Góra