Jakiej bazy użyć (baza danych na dysku)?

0

Witam

Mam problem z Delphi. Chcę zrobić program który będziemiał dane w zewnętrznym pliku. Chcę aby się łączył i wybierał z tego pliku tylko te dane których potrzebuję (zgodnie z filtrem). Jakiej Bazy użyć. Czy MySQL jest dobrym wyborem? Czy wystarczy wygenerować jakiś plik z tabelą i do niego zapisywać/ odczytywac dane? Już nie wiem jak to zrobić :( Proszę o wskazówkę.

0

Czy MySQL jest dobrym wyborem? Czy wystarczy wygenerować jakiś plik z tabelą i do niego zapisywać/ odczytywac dane?

To zależy czy chcesz tam trzymać 10 wpisów czy 10^10.

Jeżeli nie jest tego dużo to warto napisać swój system a jak jest tego bardzo dużo to MySQL będzie potrzebne.

0

zamist pytać to bys sam poszukał.
http://4programmers.net/Forum/Delphi_Pascal/139384-Jaką_BD_wybrać_aby_dało_się_przenosić?hl=jak%C4%85%20baza%20danych%20wybra%C4%87
mozesz tez zapytac google, najprosciej jak sie da: "jaką bazę danych wybrać w delphi".

//a i jeszcze to, ostatnio bylo na forum:
Wydruk i baza danych
mozna sie obejsc nawet bez zewnetrznej dll'ki.

0

Będzie bardzo dużo. I żeby było czytelne trzeba to filtrować i wyświetlać tylko konkretne dane. Czy baza SQL wystarczy bo widze ze do niej nie trzeba nic instalować a do MySQL jakies serwery i nie wiem czemu ale umnie to nie działa.

Edit

Czytam cały dzień juz i nie wiem... nie jest tak że nie szukałem, ale chcę fachowej odpowedzi od osób które juz się znają.

Edit

A można wyeksportować całą bazę danych do pliku db lub dll, w MySQL ? I jak to zrobić?

0
  1. Masz pojęcie do czego jest baza SQL bo tak widzę z twoich wypowiedzi że nawet nie wiesz jak się do tego zabrać i nie posiadasz pojęci o podstawach bo pytasz jaką bazę danych wybrać.
  2. Chcesz konkretnej odpowiedzi to powiedz co masz i co chcesz osiągnąć.
  3. Nie licz na to że ktoś ci powie co i jak krok po kroku bez twojego wysiłku albo zaraz poda ci gotowe rozwiązanie.

A tak poza tym to powiedz na jakim poziomie umiesz programować ;]

0

Nie rozumiem czemu od razu tak nie przyjaźnie. Szukałem cały dzień odpowiedzi i pod koniec dnia trochę się pogubiłem w tym wszystkim. Jeśli chodzi o bazy danych to znam je ze słyszenia i co nieco chciałem ogarnąć w tym temacie. Znalazłem naprawdę sporo ciekawych artykułów w internecie, yt, czy książkach. Niestety nigdzie nie tłumaczą zasady działania, a ja jak czegoś nie rozumiem to nie wiem jak się za to zabrać. Po prostu uznają że to takie proste, że nie trzeba tłumaczyć. Niestety początkującego trzeba prowadzić za rączkę (ale tylko raz). Trochę programowałem w VBA i chciałbym to poszerzyć o Delphi i Bazy danych.
Wiem że chcielibyście odpowiadać na bardziej skomplikowane pytania ale niestety na razie takich nie mam :P, a myślę, że forum jest dla wszystkich.

Moje pytania na dzień dzisiejszy.

  1. Jak odbywa się eksport bazy danych do pliku .db ? (wiem jak ją utworzyć edytować w MySQL itp.)
    Ale jak ją zapisać, chcę aby program odczytywał ją z dysku nie serwera.
  2. Czy MySQL i SQL to coś innego?
  3. Zainstalowałem MySQL (jakiś emu-serwer typu krasnal chyba) , odpaliłem konsolkę i wpisałem hasło jakie podałem podczas instalacji.
    W Delphi 7 Borlanda łączy się z bazą po wpisaniu tych samych danych
    W Delphi XE2 już niestety nie :/ Pojawia mi się taki błąd jak w załączniku.
  4. Wydaje mi się że jak chcę odczytywać bazę z dysku to nie potrzebuje MySQL...
    Wystarczy tę bazę utworzyć w BDE Administrator i odwołać się do niej w Delphi.
    A jaki sterownik wybrać :O to też nie wiem, więc wybieram standard.
  5. Czy istnieje jakiś inny program do edytowania Baz danych jak BDE administrator?
  6. Zrobiłem pewnie ćwiczenie z książki i po skompilowaniu przykładowego programu z bazą danych nie ujrzałem pliku .db w katalogu z projektem.
    Został on wpisany w plik .exe?

Wiem że proste... Jak ktoś nie chce to niech nie odpowiada, sam rozkminie (kiedyś), a jak ktoś zechce to będzie mi bardzo miło :)

1
  1. tak, to są zupełnie dwie różne rzeczy. MySQL DBMS(system zarządzania bazą danych), a SQL to jest język w którym się pisze zapytania do bazy. Wikipedia zna na to odpowiedź
  2. no to nie używaj bazy MySQL, która takiego serwera wymaga
  3. jest tego trochę, zależy jeszcze o jakiej bazie danych mówimy
  4. to nie musi być plik z rozszerzeniem db, to nie musi być jeden plik, nie jest on w exe, a w stosownym dla danego serwera miejscu

Skoro nie chcesz mieć serwera to zainteresuj się bazą SQLite

0

Dziękuję za odpowiedź

  1. Widzę że jest SQLite Maestro. Czy potrzebuję oprócz tego jakiś drivery czy coś do SQLite? Wydaje mi sie, że nie...
  2. Plik z danymi ma być lokalny, po skompilowaniu muszę gdzieś przegrywać taki plik czy zostanie on dołączony automatycznie? I co jeśli będę mieć kilka plików z danymi.. bo przecież nie chcę wszystkich wgrywać na raz...
0

Jeżeli na kompie masz Offica to pewnie masz tam Accesa (fuj), zacznij może od niego, nie potrzeba serwera, wszystkie drivery już są, do tego wizualne narzędzia do zarządzania bazą.

0

Nie rozumiem sam nie lubisz Accessa ... a i tak mi go polecasz ??

0

Tak, na początek, jak już ogarniesz podstawy to sam będzisz w stanie wybrać odpowiedznią bazę dla siebie.

1
  1. Do SQLite nie trzeba instalować żadnych driverów ani innych rzeczy. Wystarczy jedna DLL'ka (sqlite3.dll). Będziesz ją musiał dostarczać razem z EXE'kiem aplikacji.
  2. Plik bazy danych będzie musiał być po prostu dostępny do odczytu przez program. W kodzie wygląda to tak, że podajemy ścieżkę do pliku i baza jest otwierana. Dzielenie na pomniejsze pliki nie ma sensu. To SQLite ma zadbać o optymalizacje.

Do obsługi SQLite w Delphi stworzono komponenty. Genralnie zapoznaj się z tym artykułem:
SQLite w Delphi

0

Podpisuje się w 100%. Do delphi i takich zastosowań jak najbardziej SQLite oczywiście jeśli nie znasz SQL'a to trzeba do tego dorzucić jakiś kursik, ale później to czysta przyjemność. W dodatku do zaprojektowania bazy jest dość wygodne narzędzie http://sqliteadmin.orbmu2k.de/

0

Widziałem już, że ktoś polecał SQLite, tylko, że Delphi ma słabe wsparcie dla tych baz, dla MySQL zresztą też. Zwłaszcza w wersjach Turbo. Sam pamiętam ile z tym roboty miałem. Chyba jedynie ODBC coś tam w miarę pozwala osiągnąć, ale z tego co pamiętam, to np. z transakcji musiałem rezygnować.

Ale jeśli nie potrzebujesz jakiś wyrafinowanych funkcji, to wystarczy XML? Jest w internecie masa gotowych modułów do obsługi XML.

0
djmentos napisał(a)

Widziałem już, że ktoś polecał SQLite, tylko, że Delphi ma słabe wsparcie dla tych baz, dla MySQL zresztą też. Zwłaszcza w wersjach Turbo. Sam pamiętam ile z tym roboty miałem. Chyba jedynie ODBC coś tam w miarę pozwala osiągnąć, ale z tego co pamiętam, to np. z transakcji musiałem rezygnować.

Dlaczego słabe? Bo nie ma pakietów komponentów, które wystarczy rzucić na formę?

Polecam na początek:
http://www.itwriting.com/blog/?page_id=659 - prosta biblioteka, wystarczająca do większości rzeczy (no cóż, klikanie nie starcza, trzeba postukać w klawisze)

Jeśli to za mało to:
http://blog.synopse.info/category/Open-Source-Projects/SQLite3-Framework - bardzo rozbudowany framework, diabli wiedzą, czego w nim nie ma

Trzeba po prostu poszukać i wybrać z tego co jest...

0

ta... XML za to da ci możliwość korzystania z transakcji xD po co taki mechanizm dla bazy, którą obsługuje 1 program? Jeśli SQLite to za mało to są darmowe (do którejś wersji) komponenty AnyDAC. testowane na Delphi7

0

Ja tam od jakiegoś czasu używam MSSQL + Server Menagment Studio + dbExpress i działa bardzo dobrze.

0

Bogatszy zestaw komponentów to np. wspomniany dbExpress.

Nie używałem, ale widzę, że jest dostępny binder dbExpress <-> SQLite (płatny!):
http://www.devart.com/dbx/sqlite/

Generalnie SQLite jest spoko. Może ma i ograniczenia, ale zaletą jest kompaktowość. Świetnie się nadaje do prostych zastosowań.

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