Skocz do zawartości


[Delphi + MySQL] - zakładanie bazy danych i połączenie


7 odpowiedzi w tym temacie

#1 Integer

    Pomocna dłoń

  • Moderatorzy
  • 191 Postów:
  • Gadu-Gadu:6888400

Napisano śro, 06 kwi 2011 - 22:35

Witam.

1. Było jak zainstalować w Delphi dobre komponenty do baz danych http://forum.unit1.pl/index.php?showtopic=3960

Ponieważ, niektórzy mają problemy z instalacja komponentów ponieważ mogą wyskakiwać mylące komunikaty o błędach .. zamieszczę tu swój opis, a właściwie wycinek rozmowy:

Zeos jest darmowy do każdego zastosowania <- chyba że się coś zmieniło
pytający
no to sprobuje pod nim, która paczka jest pod D2007? bo tu takowej nie widzę
programista
Delphi11
pytający
mam tylko delphi10 nie mam 11
programista
też tam paczka jest
pytający
Component \ insall packages \ Add?
programista
nie, w delphi otwórz paczke z katalogu package\Delphi10
ZeosDbo.groupproj
prawym na pierwszy projekt <- Build all from here
a potem prawym i Install na ostatnim
potem tylko trzeba ścieżki do źródeł dorzucić w delphim
pytający
no found ZCore Res
ZCore.res*
programista
jak chcesz zrobić Build for all?
pytający
z folderu otwieram ZeosDbo.groupproj, w drzewku klikam Build all from here i wyskakuje mi taki bład
uzywam ZEOSDBO-6.6.0-beta
programista
ściągnij 6.6.6-stable idzie do strzału ja przed chwilką właśnie tą 6.6.6 ściągłem i ładnie poszło
pytający
file not found ZVariant.dcu ale go szukam
jest tylko w folderze build; Package D:\....\ZCore110.bpl cant installed because it is not a design time package
programista
no ok., wszystkim daj po kolei install, ostatnia pozycja się zainstaluje, CommeonetDesing czy coś takiego
pytający
ok mam zakładke Zeos Access

#2 Integer

    Pomocna dłoń

  • Moderatorzy
  • 191 Postów:
  • Gadu-Gadu:6888400

Napisano śro, 06 kwi 2011 - 22:36

A teraz będzie jak założyć bazę danych na serwerze / hostingu i jak się z nią połączyć za pomocą komponentów ZeosLib.
Jak by się kto pytał poco się tak rozpisuję to odpowiadam, że mam dobrą pamięć ale krótką a nie które rzeczy bardzo rzadko się robi u szczegóły umykają z pamięci smile.gif.

Zakładanie serwera na własnym komputerze.
Aby mieć konto na serwerze wystarczy albo
- postawić sobie serwer na Linuksie lub na Windowsie (nie będę się spierał który lepszy bo pewnie Linuks ma więcej zwolenników nie wiedzieć czemu - żartowałem, że nie wiem wink.gif), fireewale, antywiry...
- mieć połączenie z internetem osiedlówka, radiówka, jakiś operator komórkowy (wersja dla bogaczy), co poniektórzy podepną do stacjonarnego telefonu;
- wykupią domenę,
- zainstalują jakiś pakiet MySQL...

Ale żeby mieć serwer MySQLa nie trzeba mieć fizycznego serwera z domeną chyba ze ktoś chce dane rozprowadzać w świat to by był to jeden ze sposobów, wystarczy mieć tylko ... I tu liczę na kogoś kto instalował bazę u siebie bo moje kilkukrotne próby z Krasnalem itp. darmowymi "serwerami" spaliły na panewce.

... zostawiam miejsce na wklejenie podpowiedzi i linków, tak dla porządku

#3 Integer

    Pomocna dłoń

  • Moderatorzy
  • 191 Postów:
  • Gadu-Gadu:6888400

Napisano śro, 06 kwi 2011 - 23:32

Jak założyć bazę danych w MySQLu na hostingu

Tu trzeba mieć stronkę z bazami danych MySQL np. 5.0
przykłady darmowych (nie testowałem, może ktoś ma jakieś sprawdzone)

http://www.unit1.pl/hosting

http://www.ugu.pl/
albo
płatną i tu link poleceń z przykładowym hostingiem ale mają fajnie pomoc opracowaną http://www.linuxpl.com/?pp=530
i przykład logowania do panelu administratora http://linuxpl.com:2222/

zakładanie bazy danych wygląda tak (po przeczytaniu klikać na strzałkę przy dymku) http://pomoc.linuxpl.com/zakladanie_bazy.htm
dodanie nowego hosta żeby miał dostęp do naszej bazy danych: http://pomoc.linuxpl.com/baza_danych_dodanie_hosta.htm
żeby każdy mógł się połączyć z taką baza z dowolnego komputera wpisujemy w miejsce IP Hosta znaczek % procentu i z głowy,
chyba że chcemy aby do bazy mieli dostęp nieliczni wtedy wpisuje się konkretne adresy IP.

Jak pobrać zewnętrzny adres IP: http://forum.unit1.pl/index.php?showtopic=2416

Gdy już mamy założoną taką bazę danych o parametrach:
delphi


Database= 'integers_test';            // zmyślone
HostName= 'www.opengl.com.pl';        // prawdziwe
Password= '1234xxxx';                 // zmyślone
User= 'integers_test';               // zmyślone
 

 

Możemy się z bazą MySQL połączyć za pomocą komponentów ZeosLib. W następnych postach będą przykłady.

#4 Integer

    Pomocna dłoń

  • Moderatorzy
  • 191 Postów:
  • Gadu-Gadu:6888400

Napisano czw, 07 kwi 2011 - 13:53

Jakie komponenty są potrzebne do zalogowania do bazy danych MySQL i obsługi tabeli?

A więc po kolei:
1. Upewnij się, że jest zainstalowane ZeosLib, zakładka Zeos Access.
2. Utwórz nowy projekt i zapisz go w folderze o nazwie np "Tabela Osób":
nazwa modułu koniecznie jako UGlowna.pas,
nazwa projektu dowolna np. "ProjektBDOsoba.dpr"

3. W menu Delphi wybieramy File\ New\ Other pokaże się okienko "Item categories";
na drzewku z lewej wybieramy folder Delphi Files,
po prawej stronie powinno być Data Module i kliknij na ikonkę, a w projekcie dojdzie nam nowy moduł. Teraz wystarczy to zapisać jako moduł UDM.pas a formę nazwać DM.

4. Na formę DM nakłada się komponenty z zakładki Zeos Acess: ZConnection, ZQuery oraz z zakładki Data Access komponent DataSource. Pozostaje zaznaczyć komponent ZConnection, w jego własnościach w Object Inspector przechodzimy z zakładki Properties na Events i dwukrotnie klikamy myszką na puste pola przy AfterConnect (po połaczeniu z serwerem) i AfterDisconect (po rozłączeniu z serwerem).
W kodzie powstały dwie procedury w które wpisujemy:

delphi

 
procedure TDM.ZConnectionAfterConnect(Sender: TObject);
begin
   FGlowna.Memo.Lines.Add( '');
   FGlowna.Memo.Lines.Add( 'Połączono z serwerem ...');
end;
 
procedure TDM.ZConnectionAfterDisconnect(Sender: TObject);
begin
   FGlowna.Memo.Lines.Add( '');
   FGlowna.Memo.Lines.Add( 'Rozłączono z serwerem ...');
end;
 



Zapisz projekt.

#5 Integer

    Pomocna dłoń

  • Moderatorzy
  • 191 Postów:
  • Gadu-Gadu:6888400

Napisano czw, 07 kwi 2011 - 14:16

Jak ustawić login, hasło i inne dane potrzebne przy dostępie do bazy danych?
Jakie własności nadać komponentom bazodanowym?

do modułu UDM.pas nad sekcją var umieść nazwę procedury

delphi
procedure LadujDane;
var
  DM: TDM;implementation
Uses UGlowna;


I to koniec prac w module DM, zapisz i przejdź na formę główną.

#6 Integer

    Pomocna dłoń

  • Moderatorzy
  • 191 Postów:
  • Gadu-Gadu:6888400

Napisano czw, 07 kwi 2011 - 14:26

Na formie głównej umieść:
- panel ustaw we własnościach Height -> 40 oraz Align -> alBottom,
- na panelu połóż DBNavigator z zakładki Data Controls,
- tuż nad DBNavigator z zakładki Data Controls jest komponent DBGrid - połóż go w wolnym miejscu w górnej części formy, a jego własność Align -> alClient,
- pozostaje jeszcze komponent MainMenu z zakładki Standard można go umieścić w dowolnym miejscu; klikając dwukrotnie na komponent MainMenu zobaczysz okienko, w którym można umieszczać przyciski widoczne później w menu, nazwy przycisków wpisuje się w własności Name, a wiec klikamy na pojedyncza pozycję pojedynczego przycisku a nie całego MainMenu są to nazwy bez liter polskich np. "mmPolacz" (mm mój skrót od MainMenu), napis widoczny w w menu wpisuj w Caption np. "Połącz".

Tak więc utwórz w menu następujące pozycje:
Caprion -> Połącz, Name -> mmPolacz,
Caprion ->Rozłącz, Name -> mmRozlacz,

#7 Integer

    Pomocna dłoń

  • Moderatorzy
  • 191 Postów:
  • Gadu-Gadu:6888400

Napisano czw, 07 kwi 2011 - 14:26

klikając dwukrotnie na nie utworzysz procedury, w które należy wpisać:
delphi

implementation
Uses UDM;                     // prosze pamiętać o dodaniu modułu DM
{$R *.dfm}

// Jak uzyskac połaczenie z baza dabych?
procedure TFGlowna.mmPolaczClick(Sender: TObject);
begin
   LadujDane;      // Ladowanie haseł i ustawianie właściwości komponentów

   if DM.ZConnection.Connected then          // jeśli sie połączono wcześniej z bazą
   begin
      Memo.Lines.Add('Łączenie z BD: już istnieje.');
   end else
   begin
      try
         DM.ZConnection.Connected:= True;
         Memo.Lines.Add('Łączenie z BD: połaczono');
      except
         Memo.Lines.Add('Łączenie z BD: Nie można się połączyć z bazą danych.');
         MessageDlg('Nie można się połączyć z bazą danych.'+#13+'Niewłaściwe dane.', mtWarning, [mbOK], 0);
      end;
   end;
end;

// Jak sie rozłaczyc z baza danych MySQL
procedure TFGlowna.mmRozloaczClick(Sender: TObject);
begin
   LadujDane;      // Ladowanie haseł i ustawianie właściwości komponentów

   Memo.Lines.Add('baza próba rozłączenia');
   if DM.ZConnection.Connected then      // jeśli jest połaczenie
   begin
      DM.ZConnection.Connected:= False;
      Memo.Lines.Add('Rozłączono z BD.');
   end;
end;

 

 

Teraz wystarczy skompilować i uruchomić. Mam nadzieję że opisy i tekst w Memo jest wystarczający.

#8 Integer

    Pomocna dłoń

  • Moderatorzy
  • 191 Postów:
  • Gadu-Gadu:6888400

Napisano czw, 07 kwi 2011 - 15:01

Na razie to tyle.
Konkretne przykłady użycia w Delphi MySQL tj.:
- tworzenie tabeli,
- kasowanie tabeli,
- pokazywanie całej zawartości tabeli,
- wklejanie rekordu,
- kasowanie rekordu
- edycja rekordu,
- wyświetlanie rekordu,
są na stronie http://gss.webd.pl/index.php?option=com_co...w&id=5&Itemid=2,

Podstawowe zapytania SQL i MySQLa

http://www.egrafik.pl/porady/mysql-podstaw...-do-bazy-mysql/
http://www.eioba.pl/a/1ou/podstawy-tworzen...pytan-sql-mysql


Zostawię sobie miejsce na ewentualne uzupełnienia i odpowiedzi na pytania wink.gif