LordTerra Geschrieben 22. August 2007 Geschrieben 22. August 2007 moin ich suche nen vernünftiges tutorial welches mir die connection von einem c++ konsolenprogramm zu einer mysql db beschreibt .. wenn ihr wisst wie es geht könnt ihr das natürlich auch schreiben mfg LordTerra Zitieren
carstenj Geschrieben 22. August 2007 Geschrieben 22. August 2007 Hi, z.B. hier: MySQL++ User Manual Zitieren
LordTerra Geschrieben 22. August 2007 Autor Geschrieben 22. August 2007 hmmm hilft mir net wirklich weiter... will kein mysql++ sondern normales mysql thx für hilfe edit: #include <stdio.h> #if defined __WIN32__ || _MSC_VER #include <windows.h> #endif #include <mysql.h> int main (int argc, char *argv[]) { MYSQL *my; my = mysql_init(NULL); if(my == NULL) { fprintf(stderr, " Initialisierung fehlgeschlagen\n"); exit (0); } if( mysql_real_connect ( my, 172.0.0.1, root, ***, avs, 0, NULL, 0) == NULL) { fprintf (stderr, "Fehler mysql_real_connect():" "%u (%s)\n",mysql_errno (my), mysql_error (my)); } else printf("Erfolgreich mit dem MySQL-Server verbunden\n"); mysql_close (my); getchar(); return 0; } ^^ soweit bin ich mittlerweile nur bringt er mit noch ne fehlermeldung: d:\ws\c++\db3\db3\db3\db3.cpp(41) : fatal error C1010: Unerwartetes Dateiende waehrend der Suche nach der Direktive für die vorkompilierte Headerdatei Fehler beim Ausführen von cl.exe. ich hab die mysql.h aus dem installierten mysql ordner in meinen quellcode ordner gepackt weil er die datei vorher net gefunden hat... und ich kein plan hab wo ich hier sowas wie nen classpath einricht Zitieren
carstenj Geschrieben 22. August 2007 Geschrieben 22. August 2007 Hi, solche Wrapper kapseln quasi die normalen API Aufrufe. D.h., entweder du benutzt das, was natürlich scho sehr C++ like ist, oder du benutzt die normale C-API, die du natürlich auch mit C++ nutzen kannst: MySQL AB :: MySQL 5.0 Reference Manual :: 23.2 MySQL C API Zitieren
LordTerra Geschrieben 22. August 2007 Autor Geschrieben 22. August 2007 hmmm also die seite hatte ich auch schon gefunden und durchgelesen aber so wirklich auskunft gibt die auch net ... wo soll ich denn nun die mysql.h her nehmen aus dem installierten mysql ordner oder wie oder was? und soll ich nun noch irgendwo nen pfad setzen oder is der durch die installation schon gesetzt´? Zitieren
LordTerra Geschrieben 22. August 2007 Autor Geschrieben 22. August 2007 #include <stdio.h> #include <stdlib.h> #include <windows.h> #include "D:/MySQL/MySQL Server 5.0/include/mysql.h" int main (int argc, char *argv[]) { MYSQL *my; /* Handle initialisieren */ my = mysql_init(NULL); if(my == NULL){ fprintf(stderr, " Initialisierung fehlgeschlagen\n"); exit (0); } /* Mit dem Server verbinden */ if( mysql_real_connect (my, "localhost", "root", "***", "avs", 0, NULL, 0) == NULL){ fprintf (stderr, "Fehler mysql_real_connect():""%u (%s)\n",mysql_errno (my), mysql_error (my)); }else{ printf("Erfolgreich mit dem MySQL-Server verbunden\n"); } /* Hier befindet sich der Code für die Arbeit mit MySQL */ /* Verbindung trennen */ mysql_close (my); getchar(); return 0; } ^^ok soweit sogut... bei der Kompilierung 0 fehler... beim ausführen: Linker-Vorgang läuft... db4.obj : error LNK2001: Nichtaufgeloestes externes Symbol _mysql_close@4 db4.obj : error LNK2001: Nichtaufgeloestes externes Symbol _mysql_errno@4 db4.obj : error LNK2001: Nichtaufgeloestes externes Symbol _mysql_error@4 db4.obj : error LNK2001: Nichtaufgeloestes externes Symbol _mysql_real_connect@32 db4.obj : error LNK2001: Nichtaufgeloestes externes Symbol _mysql_init@4 Debug/db4.exe : fatal error LNK1120: 5 unaufgeloeste externe Verweise Fehler beim Ausführen von link.exe. db4.exe - 6 Fehler, 0 Warnung(en) ... was ist ein Nichtaufgeloestes externes Symbol ??? Zitieren
carstenj Geschrieben 22. August 2007 Geschrieben 22. August 2007 Hi, also evtl. solltest du dich mal mit den Grundlagen beschäftigen, statt gleich so Dinge wie die MySQL-Programmierung anzugehen. Ein nichtaufgelöstes Symbol bedeutet in etwa, dass die in der mysql.h deklarierte Funktion nicht gefunden wird, da dein Linker die entsprechende Library nicht findet. Wie und wo du das konfigurierst, weiss ich nicht. Das muss du irgendwo in deinen Projekteinstellungen machen. Übrigens programmierst du reines C, und kein C++! Zitieren
Amstelchen Geschrieben 22. August 2007 Geschrieben 22. August 2007 ... was ist ein Nichtaufgeloestes externes Symbol ??? die in mysql.h deklarierte funktion ist in der library nicht vorhanden, deshalb findet sie der linker nicht. wo soll ich denn nun die mysql.h her nehmen aus dem installierten mysql ordner oder wie oder was? und soll ich nun noch irgendwo nen pfad setzen oder is der durch die installation schon gesetzt´? die verwendete mysql.h muss zur verwendeten libmysql (auf der windowsplattform in form einer DLL, auf linuxoiden systemen gerne als .so entdeckt) passen. die erst bietet bietet die funktionen an. und ich kein plan hab wo ich hier sowas wie nen classpath einricht die mysql-bibliothek muss in den entsprechenden projekteinstellungen dem linker mitgeteilt werden. CLASSPATH betrifft eher java-anwendungen. du solltest dich auch auf die nomenklatur einigen - einerseits schreibst du C++, dann wieder klassisches C. s'Amstel Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.