FreePascal (FPC) a Lazarus > Obecné

Error - libmysql.dll

<< < (2/3) > >>

Fantom007:
Tak jsem spustil Process Monitor a zjistil, že u spousty záznamů s libmysql.dll byl skoro všude SUCCESS, pouze dvakrát FILE LOCKED WITH ONLY READERS, jednou OPLOCK HANDLE CLOSED a několik oblastí s BUFFER OVERFLOW (za kterými pokračoval SUCCESS).

Do adresáře s přeloženým exe jsem postupně dokopíroval devět knihoven dll, které program v danou chvíli volal a nebyly nalezeny.
Nyní jsem se posunul, protože program vrací hlášku:
TMySQL57Connection can not work with the installed MySQL client version: Expected (5.7), got (8.0.23).

Nerad bych přeinstalovával stávající SQL, protože na tom teď z domova dálkově pracuji na firemních věcech. Možná po konzultaci s ajťákem, ale ten asi bude mít spoustu keců. Poradí někdo, co je příčinou chyby programu?.

pf1957:

--- Citace: Fantom007  19-01-2021, 18:00:13 ---TMySQL57Connection can not work with the installed MySQL client version: Expected (5.7), got (8.0.23).

--- Konce citace ---
No vzdyt ti to pisou: s kazdou instalaci MySQL serveru dostanes i odpovidajici verzi klientske .DLL, takze ty mas libmysql z verze 8.0.23, ale ta trida TMySQL57Connection je zastarala a byla vyvinuta pro verzi 5.7. Ale co je to zac nevim, stejne jako nevim, jestli je verze 8.x zpetne kompatibilni. Takze bud sehnat lepsi/jine komponenty nebo downgradovat Parodii, jestli tak zastarala vec jeste nekde existuje.

Nejlepsi bude se na Lazarus zeptat nekde na mezinarodnim foru, tady mam dojem s tim moc lidi nedela.

Fantom007:
Tak už mi to chodí. Chybová hláška 'Can not load default MySQL Library ("libmysql.dll" or "libmysql.dll")' se skutečně zobrazuje při použití 32-bitové knihovny pod 64-bitovým programem, hláška 'TMySQL57Connection can not work with the installed MySQL client version: Expected (5.7), got (8.0.23)' nastane při nesouhlasu verze knihovny a připojovací komponenty. Stáhl jsem si starší verzi knihovny, a program začal chodit.

Trochu mě překvapilo, že poslední verze programu Lazarus má poslední připojovací komponentu k SQL databázi pro verzi 5.7, tedy dost zastaralou (naštestí chodí). Kdyby někdo znal odkaz na novější komponentu, budu velmi rád.

Trochu zmatek jsem měl v tom, že pojem Databáze znamená (pod)adresář s tabulkami, a název vlastní tabulky se použije až v sql dotazu. Toto názvosloví je (alespoň pro mě) dost zavádějící. Když jako DatabaseName použiji 'test', program se dívá do adresáře  ..\xampp\mysql\data\test. Pokud tento adresář zkopíruji např. do C:\test a tuto cestu zadám jako DatabaseName, program ohlásí Unknown database 'c:\test'. Nevím tedy, jak zadat úplnou cestu k databázovým tabulkám umístěným ve vlastním adresáři.

Děkuji všem, kdo se mi snažili pomoci.

pf1957:

--- Citace: Fantom007  20-01-2021, 16:12:44 ---Trochu zmatek jsem měl v tom, že pojem Databáze znamená (pod)adresář s tabulkami, a název vlastní tabulky se použije až v sql dotazu. Toto názvosloví je (alespoň pro mě) dost zavádějící. Když jako DatabaseName použiji 'test', program se dívá do adresáře  ..\xampp\mysql\data\test. Pokud tento adresář zkopíruji např. do C:\test a tuto cestu zadám jako DatabaseName, program ohlásí Unknown database 'c:\test'. Nevím tedy, jak zadat úplnou cestu k databázovým tabulkám umístěným ve vlastním adresáři.

--- Konce citace ---
To je cele pomylene: Jestli si to po 10+ letech pamatuju, tak databaze je v podani MySQL to, co vytvoris DDL prikazem

--- Kód: SQL ---CREATE DATABASE testTim se to dostane do katalogu databazi, kterou si z console muzes zobrazit prikazem

--- Kód: SQL ---SHOW DATABASESa jeji pouziti

--- Kód: SQL ---USE testA mam dojem, ze zrovna i konektivite se zadava jmeno databaze tj. napr. test

Kde ty databaze jsou, je zalezitost konfigurace RDBMS a v jakem jsou tvaru je ciste zalezitost MySQL. Programatorovi do toho v podstate nic neni.
A tabulka = repository DB entity, to neni zadna databaze a nikdy nebyla, snad ani v dobach dBase...



Fantom007:
Takže jestli jsem to dobře pochopil, není možné nakonfigurovat místo vytvoření SQL databáze (v zadaném adresáři) a tam s ní pracovat. Pro mne by bylo dobré uschovat si SQL databázi v podadresáři programu (použít relativní cestu), abych si ho mohl zkopírovat na jiný počítač a rovnou spustit i s příslušnou databází, a nezkoumat, ve kterém adresáři systém s SQL databázemi pracuje (byl jsem tak zvyklý pracovat s databázemi Paradoxu).

Navigace

[0] Seznam témat

[#] Další strana

[*] Předchozí strana

Přejít na plnou verzi