Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    110

    [C] accedere ad un database con un programma c

    Salve a tutti,premetto che è da poco che ho iniziato a usare C, ora sto cercando di sviluppare con Dev c++ un programma C che permetta di accedere ad un database per effettuare delle query, nel caso specifico un semplice conteggio delle righe di una tabella
    ho creato il database con una tabella con xampp
    ho scaricato la libreria Libmysql e l'ho inserita tra i linker, solo che quando lo vado a compilare mi da errore:
    File format not recognized
    ld returned 1 exit status
    C:\Dev-Cpp\Makefile.win [Build Error] ["../Documents] Error 1

    il codice del programma che ho scritto è questo

    codice:
    #include <stdio.h>
    #include <windows.h>
    #include <mysql/mysql.h>
    
       
    
    int main()
    {
       /* parametri di connessione */
       
       char *host = "localhost";
       char *user = "root";
       char *pass = "";
       char *db = "dati";
       
       int x; 
        
        
        MYSQL mysql;
       
        /* controllo della conessione mi restituisce NULL se 
        la connessione non avviene */
        if (!mysql_init(&mysql))
         { printf("Errore nella locazione di memoria. /n");
        }
    
        if (!mysql_real_connect(&mysql, host, user, pass, db, 0, NULL, 0))
             {printf("Errore nella conessione. /n");
        }
        
        /* Restituisce 0 se la connessione avviene con successo */
        if(mysql_select_db (&mysql,db))
        { printf("Errore nella selezione del database");
         }
        
        /* Eseguo la query */
        if(mysql_query(&mysql,"SELECT COUNT(*) FROM 'dati'" ))
        {printf("Errore nella query");
        }
        
        /* chiusura della connessione */
        mysql_close(&mysql);
        
        scanf("%d",x);
        
        return EXIT_SUCCESS;
    }
    qualcuno mi saprebbe dire dove sbaglio??

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    225
    hai inserito la libreria statica o dinamica ? (normalmente si usa quella con estensione .dll)

    ciao
    sergio

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    110
    si ho provato sia con la libreria .dll che quella .lib e anche con quella del dev che è .entry ma quella .dll non la legge proprio invece le altre due mi danno l'errore che ho detto

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    225
    hai copiato la dll nella directory di sistema ?

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    110
    Originariamente inviato da Magi13
    si ho provato sia con la libreria .dll che quella .lib e anche con quella del dev che è .entry ma quella .dll non la legge proprio invece le altre due mi danno l'errore che ho detto
    non ho capito in che senso?? io l'ho salvato nella cartella con tutte le altre librerie

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    110
    Originariamente inviato da sebaldar
    hai copiato la dll nella directory di sistema ?
    Se intendi nella cartella di sistema di windows si, ma ancora niente mi da sempre lo stesso errore

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Se disponi del file

    libmysql.a

    devi linkarlo al posto della .lib
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    110
    Originariamente inviato da oregon
    Se disponi del file

    libmysql.a

    devi linkarlo al posto della .lib
    Allora ho provato anche così, ma il risultato è lo stesso
    in oltre ho provato ad aggiungere due opzioni
    lmysql
    -lms2_32

    usando questa sintassi nei linker ottengo solo questo errore:

    C:\Dev-Cpp\Makefile.win [Build Error] ["../Documents] Error 1

    e il log mi da questo:

    Compilatore: Default compiler
    Building Makefile: "C:\Dev-Cpp\Makefile.win"
    Esecuzione di make...
    make.exe -f "C:\Dev-Cpp\Makefile.win" all
    g++.exe -D__DEBUG__ prova.o -o "..\Documents and Settings\MAR\Desktop\Francesco\Progetto3.exe" -L"C:/Dev-Cpp/lib" -L"C:/Dev-Cpp/Packages" lmysql -lws2_32 lib/gcc/mingw32/3.4.2/include/mysql/libmySQL.lib -lgmon -pg -g3 -nostdlib

    g++.exe: lmysql: No such file or directory

    make.exe: *** ["../Documents] Error 1

    Esecuzione terminata


    faccio notare che se aggiungo il - a lmysql torno al punto iniziale

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    225
    per lincare una libreria condivisa devi usare l'opzione -l del compilatore g++
    -lmysqlclient
    oppure -l<nome_della_dll> (senza estensione)

    ciao
    sergio

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da Magi13
    Allora ho provato anche così, ma il risultato è lo stesso
    in oltre ho provato ad aggiungere due opzioni
    Hai trovato ed indicato nelle opzioni la libreria

    libmysql.a

    ??

    Sei sicuro che è quello il file (con estensione .a) e che esiste?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.