Creare un database e connettere un programma c++ ad esso

di il
8 risposte

Creare un database e connettere un programma c++ ad esso

Salve a tutti,

è da un paio di giorni ormai che continuo a sbattere la testa cercando un modo per far comunicare un database con un programma c++. Le difficoltà nascono soprattutto dal fatto che non conosco (e finora nessuno mi ha spiegato) le librerie da usare, i driver da installare etc etc. Questo fa nascere una marea di errori nelle 2 righe di codice che scrivo per far connettere il programmino al db.
Ho provato anche con un programma di esempio trovato su msdn ma mi scontro quando mi chiede di scegliere il driver odbc corretto. Ci sono 4 opzioni e non gliene va bene nessuna.
A prescindere da ciò comunque ho davvero bisogno di un esempio, il più standard e chiaro possibile.
L'unico vincolo è che come compilatore uso visual studio express 2013 e come sistema operativo Windows 8.1. Ovviamente il programma è in c++. Lo dico perchè ho già fatto una cosa simile in java ma era tutto molto più semplice. Mi sembra assurdo che in c++ le cose si complichino così tanto

Il server con annesso database che sto usando al momento l'ho creato con mySQL workbench.

8 Risposte

  • Re: Creare un database e connettere un programma c++ ad esso

    Non esiste alcun sql database, SQL è l'acronimo di Structured Query Language, un linguaggio usato nei database, quindi devi spiegarti meglio...
  • Re: Creare un database e connettere un programma c++ ad esso

    ... mySQL ... ?

    (almeno dall'ultima riga ...)
  • Re: Creare un database e connettere un programma c++ ad esso

    Si scusate, il linguaggio che devo usare per il database è sql.
    il database come detto l'ho fatto con myslq ma se è necessario posso cambiare con SQLlite o oracle
  • Re: Creare un database e connettere un programma c++ ad esso

    spyhunter ha scritto:


    si scusate, il linguaggio che devo usare per il database è sql.
    il database come detto l'ho fatto con myslq ma se è necessario posso cambiare con SQLlite o oracle
    MySQL va benissimo!!!
    Non metterti a disinstallare/installare altri DBMS!!!!
    Rischi di passare dalla padella alla brace

    Altra cosa: non fare confusione!

    Praticamente TUTTi i database RELAZIONALI usano SQL (Structured Query Language) per l'interrogazione! Quindi NECCESSARIAMENTE devi usare SQL per accedere a questo tipo di DBMS!

    Per l'accesso a MySQL via C++ c'e':




    USARE GOOGLE, GRAZIE
    LEGGERE LA DOCUMENTAZIONE, PREGO!!!!!!
  • Re: Creare un database e connettere un programma c++ ad esso

    Innanzitutto ti ringrazio per la risposta e per la guida. Continuavo a girarci intorno senza trovarla.
    L'ho letta praticamente tutta ed ho eseguito tutti i passaggi per avere a disposizione su vs le librerie . Facendo una prova con il primo esempio che c'è nella guida però mi da errore, proprio sulla libreria mysql_driver.h

    Questo è il programma
    
    #include <mysql_driver.h>
    
    int main(){
    
    	sql::mysql::MySQL_Driver *driver;
    	sql::Connection *con;
    
    	driver = sql::mysql::get_mysql_driver_instance();
    	con = driver->connect("tcp://127.0.0.1:3306", "root", "root");
    
    	delete con;
    	return 0;
    }
    
    L'errore è il seguente :

    Impossibile aprire il file inclusione 'boost/scoped_ptr.hpp' : No such file or directory

    In poche parole la libreria mysql_driver.h include quest'altra libreria boost che non ho la minima idea di dove si trovi o di come fargliela vedere a visual studio.
  • Re: Creare un database e connettere un programma c++ ad esso

    http://www.boost.or
  • Re: Creare un database e connettere un programma c++ ad esso

    Ok boost linkata e funzionante (ho fatto un nuovo progetto e provato ad usarla e funziona)

    Ora nuovo problema. La guida di mysql non è aggiornata. Quando Inserisco nel linker/input i seguenti:
    - mysqlcppconn-static.lib
    - libmysql.lib

    mi dice che libmysql.lib è impossibile da trovare ed ha ragione perchè nella cartella (in questa versione di mysql connector a quanto pare) non esiste più un file libmysql.lib . Ora lasciandolo il programma si pianta con l'impossibilità di trovare libmysql.lib. Eliminandolo da linker/input si scatenano una serie di errori (52) e 2 warning. Gli errori vanno da errata corrispondenza a variabili già definite in file .obj. Se volete posso incollare uno screen, ma penso che risolvendo il problema di libmysql.lib anche questi errori dovrebbero sparire. Il fatto è che nella guida non c'è nemmeno un accenno a come recuperare o cambiare questo file.

    Pensavo fosse molto più semplice
  • Re: Creare un database e connettere un programma c++ ad esso

    Ok dopo una bella intuizione ho deciso di provare ad utilizzare la versione dinamica, ho linkato la dll dopo averla copiata nella cartella dove si trova l'eseguibile e tutto funziona.
    Ovviamente se mysql facesse una guida aggiornata (bastava anche una nota che dicesse di fare il collegamento dinamico -.- ) gliene saremmo tutti grati !
Devi accedere o registrarti per scrivere nel forum
8 risposte