_Faby_ Geschrieben 11. April 2011 Teilen Geschrieben 11. April 2011 Hallo zusammen... Ich habe eine Frage bezüglich MySQL + c++. Hier mein Code: void connect(void) { mysql = mysql_init(NULL); if(mysql == NULL) { _ftprintf(stderr, _T("Fehler beim Initialisieren\n")); exit (EXIT_FAILURE); } //Database access per mysql_select_db(pointer to MYSQL-Handle, pointer to Database-Name); also possible if(mysql_real_connect(mysql, "localhost", USERID, PASSWORD, DATABASE, 0, NULL, NULL)==NULL)//mysql_real_connect(pointer to MYSQL-Handle, Host-Name, User-Name, Password, Database, Port, Socket, NULL -> no Flags); { unsigned int error = ::mysql_errno(mysql); if(error == 2003) _ftprintf(stderr, _T("Keine Verbindung zum Host\n")); } else _tprintf(_T("Erfolgreich mit dem MySQL-Server verbunden\n")); check_error(); } void check_error() { if(::mysql_errno(mysql)!= NULL) { _ftprintf(stderr, _T("Fehler: %s\n"), mysql_error(mysql)); getchar(); exit(EXIT_FAILURE); } } void seperate_connection(void) { ::mysql_close(mysql); } Wenn ich das Programm ausführe gibt es keinen Fehler. Nur wenn das Prog durchgelaufen ist, wird der Fehler "...0xC0000005: Access violation reading location 0xfeeefeee" ausgegeben Woran kann das liegen?? Danke schon mal im voraus für die antworten mfg _Faby_ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 11. April 2011 Teilen Geschrieben 11. April 2011 Du greifst offenbar auf bereits freigegebenen Speicher zu. Bist du sicher, dass der Fehler in einer dieser Funktionen steckt? Was sagt der Debugger? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
_Faby_ Geschrieben 11. April 2011 Autor Teilen Geschrieben 11. April 2011 (bearbeitet) Leider bin ich mir nicht ganz sicher :S Ich werd mal ausprobieren was passiert wenn ich ein bisschen was von meinem zuletzt geschriebenen Code auskommentere Ich verwende Visual Studio 2008... EDIT: Okay, hat nichts gebracht hab alles auskommentiert doch der Fehler kommt immer noch. Screenshot vom Call Stack: Bearbeitet 11. April 2011 von _Faby_ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
_Faby_ Geschrieben 11. April 2011 Autor Teilen Geschrieben 11. April 2011 Mir ist gerade eingefallen, dass es auch noch an der Main funktion hängen kann... Das wäre sie... int _tmain(int argc, _TCHAR* argv[]) { int selection; TCHAR movie[1024]; TCHAR* ptr; _tprintf(_T("Baue Verbindung zum Server auf...\n\n")); connect(); _tprintf(_T("Bitte wählen Sie eine der nachfolgenden Funktionen:\n-1- Film hinzufügen\n-2- Film loeschen\n-3- Filmdaten aendern\n-4- Alle Filmdaten ausgeben\n-5- Film suchen\n-6- Programm beenden\n\n")); _tprintf(_T("Ihre Auswahl: ")); scanf("%d", &selection); fflush(stdin); switch(selection) { case 1: add_movie(); break; case 2: del_movie(); break; case 3: change_movie_data(); break; case 4: show_data(); break; case 5: _tprintf(_T("Suchkriterium Filmtitel\nName eingeben: ")); _fgetts(movie, 1024, stdin); if((ptr= (TCHAR *)_tcschr(movie, '\n'))!=NULL) *ptr = '\0'; search_movie(movie); break; case 6: _tprintf(_T("...trenne Verbindung zum Server\n")); break; default: _tprintf(_T("Falsche Eingabe\n\n")); } while(selection != 6) seperate_connection(); getchar(); return EXIT_SUCCESS; } Bin am verzweifeln... Sitz an dem Problem nämlich schon seit Anfang letzter Woche Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 11. April 2011 Teilen Geschrieben 11. April 2011 Das sieht aber eher nach C Code als C++ Code. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
_Faby_ Geschrieben 11. April 2011 Autor Teilen Geschrieben 11. April 2011 Hast du natürlich recht Komm zur Zeit voll durcheinander^^ Hab meinen Fehler aber gefunden müsste in der main-funktion while(selection == 6) heißen... Danke für die Antworten... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
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.