Bazy danych w Delphi

0

Witam!

Czy ktos moze polecic jakies dobre strony (niekoniecznie polskie) o tworzeniu baz danych w Delphi?

0

Zapraszam na: <url>www.torry.net</url>

0

Podłączę się pod wątek z innym pytaniem:

Jakich baz radzcie używać, przy założeniu, że ma być najlepiej darmowa, aby nie było to dodatkowym kosztem.

Ja wstępnie do jednego tematu użyłem sobie bazy Access-owej i lączę się do niej przez ODBC, ale pieszę z myślą o ewentualnej zmianie, więc odzielam całą warstwę bazy w oddzielnym module.
A jak już zostaję przy Accessie to czy musi być to przez ODBC, może inaczej można.

Kris

0

Polecam bazę danych mySQL (www.mysql.com)
a z połączeniem tego do Delphi to albo poprzez ODBC dla mySQL (też darmowe na tej samej stronie) i wtedy możesz się łączyć z tąbazą poprzez zwykłe komponenty TTable, TDatabase.
Albo użyć na przykład komponenty Zeoesa (WinZeos bodajże się nazywają) i wtedy łączysz się bezpośrednio z serwerem mySQL-a.

Wszystkie tutaj programy są darmowe, tylko nie wiem jak to jest z tymi komponentami zeoesa - czy sa darmowe dla zastosowań komercyjnych? Nie wiem

[cya]

0

O ile mi wiadomo to Zeosy są i na kylixa i delphi (z wyjatkiem 7 chyba) na licencji GNU o ile wiem. Co oznacza że masz ich xródła itp ale co do zastosowań to poczytaj sobie licencję.

0

Jak dla mnie to najprostszą i najwygodniejszą bazą była dBase. Z Accessem mam niemiłe wspomnienia. Z MySQL jeszcze się nie bawiłem. Jednak przy większości baz najwygodniej jest korzystać z ODBC (lub BDE).
A co do pomocy na temat baz to jest lista dyskusyjna (chyba pl.comp.lang.delphi.bazy-danych).

P. S. Fajny Muminek, tzn. koń :)

0

Access tak ja tez mam niemiłe wspomnienia, ktore na dodatek nadal mnie nachodza i chyba zrobie ostry upgrade programu plus konverter na cos bardziej przyziemnego np dBase

0

ja uzywam od ponad 9 miesiecy mysql-a i sobie bardzo chwale, poza tym jezeli ktos chce to mam zeosa do D7

0

ja uzywam od ponad 9 miesiecy mysql-a i sobie bardzo chwale, poza tym jezeli ktos chce to mam zeosa do D7

problem z mysql jest taki ze trzeba instalować server wraz z programem na komputerze z ktorego chcemy korzystac :( a komputer np nie jest podpięty do sieci

0

Co do tego zeosa do d7 do mogł bys go wyslac pod maila [email protected]
Z gory thx przyda mi sie :D

0
UnDe@D napisał(a)

ja uzywam od ponad 9 miesiecy mysql-a i sobie bardzo chwale, poza tym jezeli ktos chce to mam zeosa do D7

problem z mysql jest taki ze trzeba instalować server wraz z programem na komputerze z ktorego chcemy korzystac :( a komputer np nie jest podpięty do sieci

Niestety, większość baz mysql nie umożliwia dostępu zdalnego, czyli nie mozemy się polaczyc z naszego zrobionego programu np. do bazy na lycosie, zeby program potestowac :(

0
UnDe@D napisał(a)

problem z mysql jest taki ze trzeba instalować server wraz z programem na komputerze z ktorego chcemy korzystac :( a komputer np nie jest podpięty do sieci

Niekoniecznie. Po długich zmaganiach udało mi się tak skonstruować program, żeby automatycznie uruchamiał sobie własny serwer mysql. Oto, co powinieneś zrobić:

  1. W katalogu głównym programu umieść katalog np. "data" i wrzuć do niego następujące pliki z katalogu mysql-a:
  • cały podkatalog "share" (o dziwo, niezbędne),
  • podkatalog "bin", a w nim:
    1. cygwinb19.dll,
    2. libmysql.dll,
    3. mysqld-nt.exe,
  • podkatalog "data", w nim znajdują się wszystkie bazy.
  1. Serwerem jest de facto proces mysqld-nt.exe, uruchomiony z parametrem --standalone. W programie uruchamiasz go np. tak:
ShellExecute(self.Handle, nil, 'data\bin\mysqld-nt.exe', '--standalone', nil, SW_HIDE);

Od tej pory możesz łączyć się z bazą, osobiście pracuję na najprostszym chyba z możliwych module TSimpleMySQL. Jest do ściągnięcia tutaj:
http://4programmers.net/file.php?id=1564

  1. Trochę zabawy jest z późniejszym zabiciem tak uruchomionego procesu. U mnie wygląda to tak:
procedure StopMySQL;
// sprawdz, czy serwer MySQL jest juz uruchomiony. Jesli tak - zamknij go.
type
  pr = record
    nazwa  : string;
    uchwyt : THandle;
  end;

var handler : THandle;
    data    : TProcessEntry32;
    p       : pr;
    uchwyt  : THandle;

  function GetName : pr;
  var i : byte;
  begin
     i := 0;
     Result.nazwa := '';
     while data.szExeFile[i] <> '' do
     begin
        Result.nazwa := Result.nazwa + data.szExeFile[i];
        Result.uchwyt := data.th32ProcessID;
        Inc(i);
     end;
   end;

begin
  handler := CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0);
  if Process32First(handler, data) then
  begin
    while Process32Next(handler, data) do
       begin
       p := GetName();
       if p.nazwa = 'mysqld-nt.exe' then
        begin
          uchwyt := OpenProcess(PROCESS_TERMINATE,bool(0),p.uchwyt);
          TerminateProcess(uchwyt,0);
          CloseHandle(uchwyt);
        end;
       end;
   end
   else
      ShowMessage('Error');

end;

Jeśli ktoś zna prostszy sposób, będę zachwycony, jeśli zechce podzielić się swoją wiedzą :) .

...voila. Wszystko śmiga. Dzięki temu rozwiązaniu nie musisz się martwić ani instalacją serwera, ani zgodnością wersji (bodajże od 5.0 wprowadzono haszowanie haseł... Dobrze myślę? To trochę komplikuje sprawę), ani konfiguracją baz. Po prostu wraz z programem załączasz wyżej wymienione pliki, w katalogu "data\data" umieszczasz gotową, spreparowaną, czystą bazę.

Pozdrawiam,
Creep

0

czy "mysqld-nt.exe" bedzie dzialac na windowsie 98 ?

Jesli jest plik Windows/my.ini to korzysta ze sceizek w nim zawartych, czy da sie zrobic by korzystal z mojego my.ini ?? gdy usune my.ini z katalogu WINDOWSA to wszystko jest ok. ale to nie jest wyjscie bo wtedy prawdziwy mysql mi nie dziala:p

0
shivanwk napisał(a)

czy "mysqld-nt.exe" bedzie dzialac na windowsie 98 ?

Szczerze powiedziawszy, to nie wiem. Sprawdź. Jeśli nie, spróbuj uruchomić inny plik, np. mysqld.exe.

shivanwk napisał(a)

Jesli jest plik Windows/my.ini to korzysta ze sceizek w nim zawartych, czy da sie zrobic by korzystal z mojego my.ini ?? gdy usune my.ini z katalogu WINDOWSA to wszystko jest ok. ale to nie jest wyjscie bo wtedy prawdziwy mysql mi nie dziala:p

Spróbuj utworzyć własny plik my.ini i umieścić go w katalogu programu / którymś z podkatalogów. Wszystko zależy od ścieżki przeszukiwania. Jeśli mysql zawsze zaczyna od folderu windowsa, jedyną radą będzie zmiana nazwy pliku w przypadku, gdy będziesz chciał uruchomić serwer dopinany do swojej aplikacji :) .

Pozdrawiam,
Creep

0

Pogoogluj nt MyLittleBase. Prosciutka baza oparta o pliki CSV (format arkusza kalkulacyjnego, dane oddzielane przecinkami, latwa edycja np z OpenOffice lub Excela). Baza jest 100% standalone, nie wymaga BDE, nie wymaga zadnych serwerow. Jest dolaczony do nie modul eksperymentalny z obsluga zapytan w jezyku SQL. Oczywiscie wszystko freeware. Trafilem na to przypadkiem i uzywam w jednym projekcie. Jak dotad bez najmniejszych problemow. Jedna podpowiedz - baza nie uzyskuje dostepu do aktualnie otwartego pliku CSV wiec uwaga podczas testow, gdy np arkusz csv masz otwarty w excelu i jednoczesnie uruchamiasz program, ktory pobiera dane z tego pliku.

Pozdrawiam.

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