J
[edit]
Ich weiss nicht genau, was jetzt anders ist, aber nach einer Neustrukturierung des Codes - modularer Aufbau - funktioniert das ganze jetzt.
[/edit]
Hallo ich habe jetzt zum Testen aus folgendem Code Teile rausgezogen und bei mir eingebaut:
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, /* Zeiger auf MYSQL-Handler*/
NULL, /* Host-Name*/
NULL, /* User-Name*/
NULL, /* Passwort für user_name */
NULL, /* Name der Datenbank*/
0, /* Port (default=0) */
NULL, /* Socket (default=NULL)*/
0 /* keine Flags */ ) == 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);
return 0;
}
Gefunden habe ich den code unter http://www.pronix.de/C/standard_C/c_programmierung_28_2.shtml#4
Klappt auch alles wunder bar, wenn ich aber versuche mit mysql_close (my); die verbindung zu beenden bekomme ich eine Fehlermeldung. Ich lasse mir die CGI-Ausgabe in einem Memo einer 2.Anwendung anzeigen und bekomme folgendes:
<html><body>Unhandled Exception: Zugriffsverletzung bei Adresse 10007D03 in Modul 'LIBMYSQL.DLL'. Lesen von Adresse 00000013</body></html>
wenn ich mysql_close auskommentiere bekomme ich die Daten angezeigt, die ich haben wollte. Habe zu Testzwecken einfach immer mal wieder ein
PutLine("Debugpunkt");
eingefügt
Da ich MySQL local auf meinem Rechner installiert habe, habe ich auch schon versucht, die DLL auszutauschen. Mit dem Effekt, dass bei einer anderen DLL (neueres Datum) schon eine Zugriffsverletzung kommt, auch wenn ich mysql_close nicht benutze.
Kann mir jemand helfen? Im Zweifelsfall lass ich das close einfach weg, was ich aber nicht für so ideal finde.