mySQL C-Function API / Wiederaufnahme einer Verbindung



  • Guten Tag zusammen,

    ich habe ein kleines Problem mit der Wiederaufnahme einer mySQL Datenbankverbindung. Folgendes liegt vor:

    Ich habe einen Client in C geschrieben, kompiliert und die Ausführung läuft auch superschnell. Folgende Routinen sind umgesetzt:
    1. initConnection()
    2. fetchResult()
    3. closeConnection() -> habe ich gezielt weggelassen!

    Wenn das von mir geschriebene Clientprogramm beim zweiten Mal gestartet wird soll die Verbindung, welche ja noch nicht geschlossen wurde, einfach weiter benutzt werden.

    Mein Problem ist aber das ich nicht weiss wie ich der Initialisierungsroutine klarmachen kann das schon eine Verbindung besteht und ich diese irgendwie übergeben kann:

    /* Handle initialisieren */
        mysql = mysql_init(NULL); // ???Wie kann ich hier eine bestehende Verbindung übergeben???
    
        if(mysql == NULL) {
            sprintf(tempString, " Initialisierung fehlgeschlagen\n");
            toConsole(tempString);
            return;
        }
        /* mit dem Server verbinden */
        if( mysql_real_connect (
                    mysql,   					/* Zeiger auf MYSQL-Handler */
                    "localhost",			/* Host-Name */
                    "root",					/* User-Name */
                    "",						/* Passwort für user_name */
                    "datenbank",		/* Name der Datenbank */
                    0,						/* Port (default=0) */
                    NULL,					/* Socket (default=NULL) */
                    0						/* keine Flags */
                )  == NULL) {
            sprintf (tempString, "Fehler mysql_real_connect():"        "%u (%s)\n",mysql_errno (mysql), mysql_error (mysql));
            toConsole(tempString);
        } else
            toConsole("...Erfolgreich mit dem MySQL-Server verbunden\n");
        return;
    

    Vielen Dank! Grüße, Kevin



  • Wenn Dein Programm geschlossen wird, ist auch die Verbindung weg. Wie und wo soll die denn bestehen bleiben, wenn Dein Programm nicht mehr läuft?

    Was möchtest Du genau machen? Vmtl. gibts dafür auch eine saubere Lösung.


Anmelden zum Antworten