Italian community of Lazarus and Free Pascal

Programmazione => Databases => Topic aperto da: PMR - Febbraio 21, 2016, 03:39:59 pm

Titolo: [Risolto] libmysql.dll mancanti
Inserito da: PMR - Febbraio 21, 2016, 03:39:59 pm
Buongiorno a tutti,

ho provato a cercare sul forum qualcosa riguardante il problema che sto per esporvi, ma non ho trovato nulla, o almeno non ci sono riuscito io. In rete ho trovato molta documentazione, ma non sono arrivato alla soluzione del problema. Ho sempre lavorato con PHP e qualche progetto l'ho realizzato anche in Delphi e db sempre MySQL. Dovrei continuare ad utilizzarlo ma supportandolo con Lazarus. Diversi anni fa iniziai a studiare questo ambiente, ma per vari motivi ho seguito altre strade. Adesso eccomi nuovamente qui.
Utilizzo Lazarus ver. 1.6 (l'ultima credo) e MySQL Server 5.6.24
Sto provando a seguire questo tutorial, forse un po' datato, ma da qualche parte devo iniziare e questo mi è sembrato abbastanza chiaro

http://www.alevel-computing.x10.mx/TutorialLazarusMySQL.php#Introduction

Al momento della connessione, però, mi viene restituito un errore del tipo:

(http://www.ariadivetro.it/appoggio/errore.jpg)

Ho copiato nella directory, come suggerito, una libmysql.dll che ho trovato in rete, ma nulla. In realtà ho trovato varie dll, ma mi sembra di procedere per tentativi e questa cosa non mi piace molto.
Avete qualche suggerimento?
Grazie per la vostra ttenzione.
Titolo: Re:libmysql.dll mancanti
Inserito da: nomorelogic - Febbraio 22, 2016, 09:38:57 am
ciao
sembra che sul tuo pc non ci siano installati i client.

Com'è la situazione il tuo pc fa sia da server che da client o è solo client?
Titolo: Re:libmysql.dll mancanti
Inserito da: PMR - Febbraio 22, 2016, 10:50:15 am
Grazie per la risposta.
Sul mio PC c'è installato XAMPP e lavora sia da server che da client.
Titolo: Re:libmysql.dll mancanti
Inserito da: nomorelogic - Febbraio 22, 2016, 11:32:18 am
xampp è un sistema portabile e non installa i client sul pc

su questo tutorial ci dovrebbero essere le istruzioni per installare i client
http://www.tutorialspoint.com/mysql/mysql-installation.htm
Titolo: Re:libmysql.dll mancanti
Inserito da: PMR - Febbraio 22, 2016, 12:27:10 pm
Ho letto, ma non sembra risolvere il problema. Cercando in giro le informazioni che riesco a reperire dicono tutte la stessa cosa più o meno: che sino a MySQL 5 la dll in questione era compresa nel pacchetto e bastava copiarla nella cartella dell'eseguibile (progetto) che si stava sviluppando in lazarus, adesso purtroppo questa dll non viene più utilizzata ed è necessario recuperarla in qualche modo. Quelle che ho recuperato io non funzionano.
Potrei porre la questione anche in altro modo: c'è qualcuno che comunica con MySQL attraverso Lazarus? Come fa?
Grazie!
Titolo: Re:libmysql.dll mancanti
Inserito da: nomorelogic - Febbraio 22, 2016, 01:13:10 pm
Più che cercare le DLL in rete dovresti usare quelle che hai nella cartella di xampp, almeno sei sicuro che sono della stessa versione (inoltre, se usi Zeos, so che è possibile specificare la fullpath della libreria client).

Come esperienza personale non uso spesso MySql ma ho dovuto installarlo sul pc e non ho avuto questi problemi, probabilmente dovresti fare la stessa cosa anche tu, anche se poi tieni il servizio spento e usi il mysql che c'è in xampp.
Titolo: Re:libmysql.dll mancanti
Inserito da: PMR - Febbraio 22, 2016, 01:21:33 pm
Il problema è proprio questo. La libreria libmysql.dll non è più contenuta nelle ultime versioni di xampp, che evidentemente utilizza librerie diverse, ma è richiesta da Lazarus.
Tanto per essere più precisi, la complazine chiaramente va a buon fine, ma al momento di connettersi con un Button al DB viene restituito l'errore. L'installazione di MySQL mi funziona senza problemi con PHP e Delphi, tanto per dire.
Titolo: Re:libmysql.dll mancanti
Inserito da: nomorelogic - Febbraio 22, 2016, 03:12:22 pm
usi zeos o sqldb?

Edit:
leggi in questo thread
http://forum.lazarus.freepascal.org/index.php?topic=16674.0 (http://forum.lazarus.freepascal.org/index.php?topic=16674.0)
(dice di fare attenzione alla versione 32/64 bit e di mettere tutte le dll e non solo quelle)
Titolo: Re:libmysql.dll mancanti
Inserito da: PMR - Febbraio 22, 2016, 03:23:57 pm
Inizio a temere che il problema sia proprio il "miscuglio" 32/64. Dovrò sistemare una macchina in modo più coerente e poi fare delle prove. Domanda: ma non esistono di Lazarus versioni separate a 32 e 64 bit?
Dimenticavo, sto provando i componenti sqldb.
Titolo: Re:libmysql.dll mancanti
Inserito da: nomorelogic - Febbraio 22, 2016, 03:40:58 pm
si c'è lazarus a 32 e a 64 (vedi in sourceforge)

cmq, assicurati che i client siano della versione giusta e poi riprova
Titolo: Re:libmysql.dll mancanti
Inserito da: PMR - Febbraio 22, 2016, 05:36:42 pm
Credo che ci sia qualcosa che mi sfugge in generale. Ho provato con SQLite. Ho scaricato i file necessari, ho creato un db, ma anche in questo caso quando provo a connettermi con Lazarus mi ritorna un errore sulla dll non caricata. Anche qui, credo il problema sia comunque riconducibile alla versione 32/64 bit. Bho!
Titolo: Re:libmysql.dll mancanti
Inserito da: PMR - Febbraio 22, 2016, 10:06:57 pm
Allora un problema è stato risolto. Adesso Lazarus si connette a SQLite senza problemi. Sono riuscito a trovare (sul sito ufficiale non mi è riuscito) la versione a 64 bit di sqlite.dll, qui:

http://blog.synopse.info/post/2013/03/23/Latest-version-of-sqlite3.dll-for-Windows-64-bit

Sistemata la libreria nella cartella dell'eseguibile la connessione è riuscita senza problemi. Vediamo il seguito.

Per libmysql.dll sarà sicuramente la stessa cosa. La ricerca continua e vi terrò informati.
Titolo: Re:libmysql.dll mancanti
Inserito da: nomorelogic - Febbraio 23, 2016, 12:36:26 am
mi è venuto in mente che su sistemi windows a 64 bit, la DLL a 32 potrebbe funzionare se la copi in sia in C:\Windows\System32 che in c:\windows\SysWOW64

facci sapere
nomorelogic
Titolo: Re:libmysql.dll mancanti
Inserito da: PMR - Maggio 10, 2016, 03:16:45 pm
Allora anche questa problematica è finalmente risolta. In pratica le librerie sono "sensibili" al numero di bit del sistema operativo e non di Lazarus o altro.
Quindi su Windows a 32 o a 64 bit vanno utilizzate le corrispondenti librerie.
Così tutto funziona nel modo corretto.