Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

MySQL: mysql_close() -> 0xC0000005: Access violation reading location 0xfeeefeee

Empfohlene Antworten

Veröffentlicht

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_

  • 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:

post-74439-14430448979419_thumb.jpg

Bearbeitet von _Faby_

  • 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 :(

  • 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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.