Jump to content

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


Integer

Recommended Posts

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

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

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

Link to comment
Share on other sites

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 :).

 

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 ;)), 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

Link to comment
Share on other sites

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:

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.

Link to comment
Share on other sites

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:

 


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.

Link to comment
Share on other sites

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

 

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

 

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

Link to comment
Share on other sites

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,

Link to comment
Share on other sites

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

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.

Link to comment
Share on other sites

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 ;)

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...