C++ Mysql problem
-
Hallo,
ich versuche gerade mit C++ (VS9) auf eine externe MySql datenbank zu zugreifen. Allerdings erhalte ich laufend fehler...
#include <sys/time.h> #include <stdio.h> #include <mysql.h> int main(char **args) { MYSQL_RES *result; MYSQL_ROW row; MYSQL *connection, mysql; int state; /* connect to the mySQL database at test.domain.de */ mysql_init(&mysql); connection = mysql_real_connect(&mysql, "host", "user", "userpassword", "database", 0,0,0); /* check for a connection error */ if( connection == NULL ) { /* print the error message */ printf(mysql_error(&mysql)); return 1; } state = mysql_query(connection, "SELECT test_id, test_val FROM test"); if( state != 0 ) { printf(mysql_error(connection)); return 1; } /* must call mysql_store_result() before we can issue any * other query calls */ result = mysql_store_result(connection); printf("Rows: %d\n", mysql_num_rows(result)); /* process each row in the result set */ while( ( row = mysql_fetch_row(result)) != NULL ) { printf("id: %s, val: %s\n", (row[0] ? row[0] : "NULL"), (row[1] ? row[1] : "NULL")); } /* free the result set */ mysql_free_result(result); /* close the connection */ mysql_close(connection); printf("Done.\n"); }
hier die fehler..
1>Compiling... 1>main.cpp 1>Linking... 1>main.obj : error LNK2019: unresolved external symbol _mysql_close@4 referenced in function _main 1>main.obj : error LNK2019: unresolved external symbol _mysql_free_result@4 referenced in function _main 1>main.obj : error LNK2019: unresolved external symbol _mysql_fetch_row@4 referenced in function _main 1>main.obj : error LNK2019: unresolved external symbol _mysql_num_rows@4 referenced in function _main 1>main.obj : error LNK2019: unresolved external symbol _mysql_store_result@4 referenced in function _main 1>main.obj : error LNK2019: unresolved external symbol _mysql_query@8 referenced in function _main 1>main.obj : error LNK2019: unresolved external symbol _mysql_error@4 referenced in function _main 1>main.obj : error LNK2019: unresolved external symbol _mysql_real_connect@32 referenced in function _main 1>main.obj : error LNK2019: unresolved external symbol _mysql_init@4 referenced in function _main 1>C:\Users\Fabian\Documents\Visual Studio 2008\Projects\Mastergroup\MySql_Connect_Test\Debug\MySql_Connect_Test.exe : fatal error LNK1120: 9 unresolved externals 1>Build log was saved at "file://c:\Users\Fabian\Documents\Visual Studio 2008\Projects\Mastergroup\MySql_Connect_Test\MySql_Connect_Test\Debug\BuildLog.htm" 1>MySql_Connect_Test - 10 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
abe jetzt schon lange gegoogle etc. leider finde ich nichts passendes da mein english auch nicht gerade das beste ist
vielleicht kann mir jemand hier weiterhelfen oder hat evtl. schon eine passende cpp datei
würde mich sehr über eine antwort von euch freuen
gruß
-
Du solltest dem Kompiler vielleicht noch angeben, wo sich die Bibliothek, bzw. das *.lib File zur Bibliothek, befindet. Dann kann er die Funktionen auch richtig zusammenknüpfen. Der Header alleine reicht in so einem Fall nicht.
Grüssli
-
Ich leider keine dateien dazu..
http://hell.org.ua/Docs/oreilly/weblinux/sql/ch13_01.htm#ch13-12418
mehr information hab ich nicht bekommen.
Hat jemand evtl. eine einfachere .cpp für mich?
Ich möchte einfach später mit C++ befehle an den Mysql server senden, der dann z.b. neue tabellen erstellt etc.
gibt es da nichts vordefiniertes wo man ein bisschen abgucken kann, das auch funktioniert?
-
sinus999 schrieb:
Ich leider keine dateien dazu..
Die gibt's im Zweifel bei www.mysql.com (aber siehe unten).
Hat jemand evtl. eine einfachere .cpp für mich?
Noch einfacher? Ja, evtl. mit einem Datenbank-Framework, was die C-API schön hinter einem C++-Interface versteckt. Aber dieses Framework muss auch installiert werden, und braucht selbst wahrscheinlich auch eine MySQL-API.
Da ist natürlich die Frage, ob es nicht einfacher ist, die mysqlclient.lib zum Projekt dazuzulinken und fertig. Die Includes sind ja sogar schon da, also liegt die Vermutung nahe, dass die Lib auch bereits auf der Festplatte schlummert.
-
Mhh.
Ich habe viele Mysql-Header-Dateien aber keine libs!
problem ist auch das ich noch in der anfangsphase von c++ bin.
Würd mich freuen wenn du mir ein bisschen unter die arme greifen könntest
-
Wo hast du die denn her? - Hast du nicht ein SDK, oder so runtergeladen?
Da ist eigentlich immer alles dabei, was man braucht. Header, libs, Doku, sowie Beispielanwendungen(nicht immer, aber oft).
-
Bei mir funktioniert es wie folgt:
#include <sys/time.h> #include <stdio.h> #include <mysql/mysql.h> .....
g++ -o test -L/usr/lib/mysql -lmysqlclient mysql.cc
Gruß Bernd
-
der code geht nicht (viel) einfacherer - das ist das basispaket. du musst im VC Projekt unter Linker die lib-datei von mysql angegeben.
bei zusätzlichen abhängigkeiten muss der pfad der mysql-includes angegeben werden und nochmal zusätzlich der pfad der Libfiles der mysql-libfiles.
lad dir von der mysql seite die mysql datenbank runter, da ist alles drin was du brauchst.
das was etwas tricky ist, ist wirklich dien einrichtung in VC.