Jak stworzyć i obsługiwać bazy danych??

0

Jak stworzyć i obsługiwać bazy danych?? Proszę o linki i inne Xródła odpowiedzi na mój temat.

0

Przejrzyj całe to forum, a znajdziesz odpowiedzi na masę pytań dot. baz danych w delphi. Są jeszcze ksiazki na ten temat w http://helion.pl/

0

Jak stworzyć i obsługiwać bazę danych?

To baaaaaaardzo obszerny temat, ale także bardzo interesujący !
Oczywiście nie można w paru zdaniach opisać tego zagadnienia, dlatego pokażę Ci tylko jak napisać, chyba najprostszą z możliwych, aplikację wykorzystującą bazę danych.

Na początku musisz zdecydować jaką bazę danych chcesz utworzyć?
Załóżmy, że będzie to Paradox.
Uruchom Database Desktop (dbd32.exe) i wybierz File->New->Table - Paradox 7.
Pojawi się okno z tabelą, w której musisz zdefiniować pola.
W pierwszej kolumnie pokazywany jest numer pola.
W drugiej musisz określić nazwę pola. Lepiej nie używaj polskich znaków diakrytycznych, ani spacji, mogą być z tym później problemy.
W trzeciej kolumnie określasz typ pola, czyli jakiego rodzaju wartości będą pamiętane w tym polu.
W następnej kolumnie określasz rozmiar pola, który oczywiście jest zależny od wybranego typu.
Jeśli dane przechowywane w tym polu mają być unikatowe, tzn. w całej tabeli wartości tego pola nie mogą się powtarzać, zaznacz je w kolumnie 5-tej gwiazdką.
Utwórz tyle pól ile potrzebujesz, naciśnij przycisk Save As... i zapisz tabelę jako np. test.db.
W tej chwili masz już pustą bazę danych i jednocześnie odpowiedź na pierwszą część Twojego pytania!
(Oczywiście tabelę bazy danych można też utworzyć w trakcie działania programu za pomocą metody TTable.CreateTable).

Teraz uruchom Delphi, utwórz i zapisz nowy projekt, następnie skopiuj plik test.db do katalogu z tym projektem.
Na palecie komponentów Delphi przejdź na zakładkę Data Access i przeciągnij na formularz komponenty: TDataSource i TTable.
Pierwszy komponent nazwij np. dsTest, drugi - tblTest. W Inspektorze Obiektów ustaw właściwość DataSet komponentu srcTest na tblTest oraz właściwość TableName komponentu tblTest na test.db.
Teraz przejdź na zakładkę Data Controls, przenieś na formularz komponenty: TDBGrid i TDBNavigator i ustaw ich właściwości DataSource na dsTest.
Przenieś na formularz jeden z przycisków (TButton, TBitBtn, TSpeedButton) i nazwij go np. btnConnect. Kliknij podwójnie na tym przycisku i wpisz: [code]tblTest.Open[/code]
Program jest już w zasadzie gotowy. Teraz go uruchom i naciśnij przycisk btnConnect. Jeśli wszystko zrobiłeś dobrze, powinieneś się połączyć z bazą danych test.db. W komponencie TDBGrid możesz teraz wpisywać dane, a TDBNavigator, jak sama nazwa wskazuje, służy do nawigowania pomiędzy rekordami (wierszami) bazy danych.
I to jest odpowiedź na drugą część Twojego pytania.

Na koniec jeszcze kilka słów wyjaśnień.
TTable (tblTest) jest komponentem niewidocznym w trakcie działanie i reprezentuje dane zapisane w tabeli bazy danych. TDataSource (dsTest) łączy dane z komponentów źródłowych (u nas tblTest) z kontrolkami służącymi do edycji i przeglądania danych (data-aware controls). Kontrolka TDBGrid umożliwia wyświetlania, edytowania danych pobranych z TTable. TDBNavigator służy do nawigowania pomiędzy rekordami w TTable.

Jeszcze kilka porad:
Poczytaj opisy komponentów na zakładkach: Data Access i Data Controls !!!
Jeśli chcesz wykorzystać w programie bazy danych MS Access-a powinieneś skorzystać z komponentów na zakładce ADO.
Naucz się języka SQL, który jest stosunkowo prosty, a jednocześnie bardzo przydatny i ułatwiający pracę z bazami danych.
Powinieneś poczytać co to takiego BDE, OLEDB, ODBC, SQL !!!

Programowanie baz danych w Delphi (i nie tylko) to, jak już wcześniej wspomniałem, bardzo obszerny temat i sporo informacji można znaleźć w Internecie (także na 4programmers). Ale najlepszym żródłem informacji na ten temat są pliki pomocy Delphi oraz Developer's Guide (dg.pdf na płycie z Delphi (przynajmniej do wersji 6)).
Do niedawna na stronie http://www.robomatic.pl/?id=lista&online=1 była dostępna bardzo dobra książka opisująca tworzenie baz danych w Delphi (w całości, za darmo, legalnie i po polsku!). Niestety od pewnego czasu większość rozdziałów jest płatna. Może jeszcze kiedyś udostępnią je za darmo. A jeśli nie - daj mi znać.
Mam nadzieję, że chociaż troszkę pomogłem !
(Przepraszam za długość odpowiedzi, ale krócej się chyba nie dało)

0

a czym właściwie jest baza danych ?
Czy jeśli oprogramowałem sobie wszystkie procedurki do listy dwukierunkowej i robie z nią co chce (celowo nie wykorzystywałem baz danych bo działają wolniej i trzeba instalować BDE) to mogę powiedzieć że program oparłem na bazie danych ?

0

No... Nie powiem, masz trochę racji.
Ciężko jest jednoznacznie zdefiniować bazę danych !!

Ktoś mógłby napisać np. program zapisujący i odczytujący rekordy do/z pliku zdefiniowanego.
Nazwałby go programem bazodanowym, a ów plik - bazą danych, i miałby chyba rację.

Ale co z obsługą całej bazy?
Trzeba wówczas pisać wszystko samemu.

A więc procedury wyszukujące, sortujące, wprowadzające dane, raportujące, wymieniające dane z innymi bazami, eksportujące, importujące......
To jest mnóstwo, wyjątkowo nieprzyjemnej roboty.

A co, jeśli zaistnieje potrzeba zastosowania relacyjnych baz danych? Jak rozwiązać problem łączenia tabel?
Oczywiście można to zrobić, ale to znowu sporo roboty.

Jednym z większych problemów w bazach danych jest równoczesny dostęp wielu użytkowników do tych samych danych. A rozwiązanie tego problemu wcale nie jest takie proste i w różnych systemach bazodanych jest ono różnie rozwiązywane.
(No to akurat dotyczy tylko RDBMS-ów).

A co z SQL? Jeśli zrezygnowalibyśmy z przygotowanych rozwiązań, to prędzej czy później należałoby napisać własny interpreter SQL-a. To też nie należy do rzeczy najprostszych!

A gdy w grę wchodzą duże ilości danych (dziesiątki, setki tysięcy rekordów) to sprawa dodatkowo się komplikuje.

Ja jednak skłaniałbym się w kierunku już przygotowanych rozwiązań Borlanda, czy Microsoftu.
Borland już od dłuższego czasu wyróżnia się właśnie dobrą obsługą baz danych i jego zasługi w tej dziedzinie są znaczne.
Gdy Borland opracował i wdrożył BDE, Microsoft tylko patrzył z zazdrością!
Ogólnie mówiąc obsługa baz danych w Delphi jest całkiem niezła. A ja niekiedy odbieram wrażenie, że Delphi jest środowiskiem wyspecjalizowanym w programowaniu baz danych. Ale może to tylko wrażenie...

Masz rację pisząc, że niekiedy własne rozwiązania działają szybciej niż BDE. Ale dokonaj porównań na naprawdę dużych ilościach danych, a wtedy docenisz Borland Database Engine!

Minusem BDE, jak wspomniałeś, jest to, że trzeba go instalować na każdym komputerze, w którym zainstalowane jest oprogramowanie korzystjące z baz danych poprzez silnik BDE.
Właśnie z tego względu coraz rzadziej stosuję BDE, zresztą Borland zapowiedział wstrzymanie prac nad ulepszaniem tego produktu. (Niestety BDE przegrał w końcu z ODBC) Wielka szkoda!!

Ostanio coraz częściej stosuję ADO i bazy Access-a. I to bez instalowania MS Access-a, czy pakietu Office!
Do połączenia z bazą stosuje komponent ADOConnection, a jako Provider ustawiam: Microsoft.Jet.OLEDB.4.0
ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyDatabase.mdb;';
Data Source - pełna ścieżka do pliku MDB.
Oczywiście dorzucam do tego jeszcze ADOQuery, albo ADOTable i wszystko działa bardzo pięknie!

To rozwiązanie zasługuje chyba na uwagę. Można korzystać do woli z baz Access-a bez BDE, MS Access-a i Office-a!!
(Testowałem to rozwiązanie na WinMe, Win2000, Win2000 Server, Win2000 Advanced Server (wszystkie systemy zaraz po instalacji, bez żadnych dodatków) i wszędzie działało bez zarzutu.))
Jeśli więc korzystasz z własnych baz danych tylko dlatego, by nie zmuszać użytkowników do instalacji BDE, polecam powyższe rozwiązanie.

0

Moje dwa grosze.

  1. Baza danych = program zarządzający danymi. Ot tyle. Nawet nie musi tego do plików zapisywać.
  2. Bez BDE też można korzystać z baz danych. Można nawet z dBase i Paradox korzystać bez BDE.
0

Moje dwa grosze.

  1. Baza danych = program zarządzający danymi. Ot tyle. Nawet nie musi tego do plików zapisywać.
  2. Bez BDE też można korzystać z baz danych. Można nawet z dBase i Paradox korzystać bez BDE.

ad.2)
jak ?

0

Poprzez ODBC, albo różne komponenty specjalnie do tego przeznaczone.
Widziałem kiedyś kilka takich na Delphi Super Page: http://delphi.icm.edu.pl/

1 użytkowników online, w tym zalogowanych: 0, gości: 1