Veröffentlicht 11. April 201114 j 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_
11. April 201114 j Du greifst offenbar auf bereits freigegebenen Speicher zu. Bist du sicher, dass der Fehler in einer dieser Funktionen steckt? Was sagt der Debugger?
11. April 201114 j Autor 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 201114 j von _Faby_
11. April 201114 j Autor 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
11. April 201114 j Autor 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...
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.