Nawiązanie połączenia z bazą MySQL za pomocą dbExpress w Delphi7

0

Próbuję połączyć się z MySQL za pomocą dbExpress w Delphi 7, jednakże cały czas pokazują się informacje o błędnie podanych danych logowania do MySQL.
Testuję na różnych serwerach, zarówno na moim hostingu jak i XAMPP czy WebServ.
Dane do logowania wydawałyby się proste gdyż wygląda to tak:

DriverName=MySQL
HostName=localhost
Database=db_sc
User_Name=root
Password=pass
BlobSize=-1
ErrorResourceFile=
LocaleCode=0000

Oczywiście te same dane mam ustawione na serwerze.
W folderze z aplikacją mam również wymagany plik libmysql.dll pobrany stąd: Rozdział 17
Mimo to cały czas pojawiają się komunikaty o błędnie wprowadzonych danych.

W czym może być problem?

2
Zeelof napisał(a):

W czym może być problem?

w dbexpressie. Poważnie, olej go, weź coś innego, np. zeos albo freedac

0

Poszedłem za Twoją radą jednak tam występuje problem tego typu:

Bez tytułu.jpg

0

i czego w tym komunikacie nie rozumiesz?? Nie masz klienta mysqla

1

Och @abrakadaber ale ty jesteś :) Jak ja zaczynałem przygodę z Delphi to też nie rozumiałem takich rzeczy. Podsumowując komunikat i rozszerzając myśl @abrakadaber chodzi o to, że ZeosLib potrzebuje odpowiednich DLL (opisanych w komunikacie) w odpowiednich lokalizacjach. Możesz je wrzucić do folderu z plikiem *.exe twojej aplikacji (powinno działać), a jak nie zadziała to chyba do Windows->System32 (lub jak masz x64 to wtedy WoWcoś tam)

0

Instalacje, konfigurację, logowanie do bazy oraz dodawanie bibliotek *.dll dla aplikacji używającej komponent ZConnection już ogarnąłem.
Brakuje mi jednak informacji w jaki sposób mogę wykonywać jakieś operacje na bazie danych.
W jaki sposób odwołać się do komponentu by do np. edit.text wyciągnąć jakiś rekord z bazy?

0

do tego potrzebujesz komponentu klasy "TZQery"

0

No fakt tyle udało mi się przeczytać gdzieś w sieci, jednakże nie mogę trafić na tutorial który wyjaśniłby jak operować na danych w tabeli gdzie jeden wynik miałby być wpisywany do jednego komponentu jak np. edit. Nie interesują mnie wyniki wypisywane do tabeli w jakimś tam komponencie, a akurat tylko takie informacje znajduje w sieci ;/

0

@Zeelof takim komponentem którego Ci potrzeba jest TDataSource. Jest on potrzebny aby połączyć kontrolki bazodanowe jak TZQuery z kontrolkami wizualnymi jak TDBEdit, TDBGrid. Wystarczy położyć na formatce komponent TDataSource, w jego właściwości DataSet ustawiasz na Twój TZQuery. Następnie w komponencie TDBEdit ustawiasz DataSource na komponent TDataSource, ustawiasz jakie pole ma być wyświetlane właściwością DataField i już.

Pytanie czemu nie wpisałeś w Google https://www.google.pl/search?q=zeoslib+tutorial&ie=utf-8&oe=utf-8&gws_rd=cr&ei=8A79VY3COIGWsAHr5pDADQ Na górze masz linka do ładnego tutka... http://www.intitec.com/varios/A_ZEOS_basics_tutorial_not_only_for_firebird.pdf

0

Nie używam TDBEdit już od dosyć dawna, ale o ile dobrze pamiętam, nie ma potrzeby przypisywać mu wartości. Prawidłowo ustawione powiązania pomiędzy nim i innymi komponentami bazodanowymi i uruchomienie zapytania zawierającego "Select" spowoduje wyświetlenie wybranej wartości wybranego rekordu.

P.S. Unikaj pisania "Select"-ów w kodzie aplikacji. Są nieodporne na ataki typu SQL Injection. Zamiast tego przerzuć obsługę bazy do samej bazy (np. poprzez wyzwalacze itp.)

P.S.2 Zmień narzędzie z Delphi7 np. na Lazarusa. Aplikacja pisana w D7 nie będzie Ci raczej działać w Windows 10.

0
XT napisał(a):

P.S. Unikaj pisania "Select"-ów w kodzie aplikacji. Są nieodporne na ataki typu SQL Injection. Zamiast tego przerzuć obsługę bazy do samej bazy (np. poprzez wyzwalacze itp.)
To zależy jakie selecty się pisze. Jeśli nie zawierasz nic co wpisze user to nie ma się czego bać. A często trzeba użyć tego co wpisze user jak np. wyszukujesz towar czy kontrahenta po kawałku nazwy. Wtedy wiadomo, że trzeba uważać.

XT napisał(a):

P.S.2 Zmień narzędzie z Delphi7 np. na Lazarusa. Aplikacja pisana w D7 nie będzie Ci raczej działać w Windows 10.
A to niby czemu ma nie działać?

0

Piszecie gdzie wstawiać select a gdzie nie, jednakże najpierw muszę poznać jak w ogóle operować na bazach MySQL z poziomu Delphi. Przede wszystkim interesuje mnie jak odwoływać się do danej wartości w bazie.
Jak więc w Delphi wpisać np. coś takiego by wynik trafił do memo?
SELECT nazwiskoFROMnba``

0

Jest tego dużo na necie:

0

@Zeelof przecież w tym pdf'ie którego linka Ci podesłałem wszystko jest...

0

np. tak :

query.open;
while not query.eof do 
    begin
       self.memo.lines.add(query.fieldbyname('jakies_pole').asstring);
       query.next;
    end;

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