MySQL Dev-C++ Beispiel

  • Themenstarter Themenstarter ggf_razor
  • Beginndatum Beginndatum
G

ggf_razor

Ich habe jetzt schon viele verschiedene Versuche gestartet um mit einem C++ Programm auf eine MySQL Datenbank zuzugreifen, aber es hat nie fuktioniert.
Selbst mit dem Dev-C++ MySQL Beispeil klappt es nicht, ich kann es zwar kompilieren aber es kommt jedes mal die Meldung: " Unable to Select Database".
Selbst wenn ich bei der Verbindung nur Schwachsinn eingebe, kommt das.
Muss ich vielleicht noch irgendwelche Ports öffnen oder so?
Vielleicht könnt ihr mir helfen...
 
Zuletzt bearbeitet von einem Moderator:
Code:
// Includes...
#include <windows.h>
#include <MySQL\mysql.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

// Database name...
char        g_szHost[]          = "xxx; // ich versuche auf einen Online MySQL Server zu kommen...
UINT        g_unPort            = MYSQL_PORT;
char        g_szUserName[]      = "xxx";
char        g_szPassword[]      = "xxx";
char        g_szDatabase[]      = "xxx";
char        g_szSQLStatement[]  = "SELECT * guid";

// Entry point...
int main(int nArguments, char *pszArguments[])
{
    // Variables...
    MYSQL          *myDatabase      = NULL;
    MYSQL_RES	   *myResult        = NULL;
    MYSQL_FIELD	   *myField         = NULL;
    MYSQL_ROW	    myRow           = NULL;
    UINT            unRecords       = 0;
    UINT            unFields        = 0;
    UINT            unIndex         = 0;
    UINT            unFieldIndex    = 0;
 
    // Initialize MySQL...
    myDatabase = mysql_init(NULL);
    
        // Failed...
        if(!myDatabase)
        {
            // Alert user...
            printf("] Error: Unable to initialize MySQL API...\n");

            // Cleanup, abort, terminate...
            mysql_close(myDatabase);
            getch();
            return 0;
        }

    // Connect to server and check for error...
    if(mysql_real_connect(myDatabase, g_szHost, g_szUserName, g_szPassword, 
                          NULL, g_unPort, NULL, 0) != 0)
    {
        // Alert user...
        printf("] Error: Unable to connect to server...\n");

        // Cleanup, abort, terminate...
        mysql_close(myDatabase);
        getch();
        return 0;
    }

    // Select database in server and check for error...
  if(mysql_select_db(myDatabase, g_szDatabase) < 0)
    {
        // Alert user...
        printf("] Error: Unable to select database...\n");
        
        // Cleanup, abort, terminate...
        mysql_close(myDatabase);
        getch();
        return 0;
    }

    // Query database and check for error...
    if(mysql_query(myDatabase, g_szSQLStatement) != 0)
    {
        // Alert user...
        printf("] Error: Unable to execute query...\n");
        
        // Cleanup, abort, terminate...
        mysql_close(myDatabase);
        getch();
        return 0;
    }

    // Retrieve query result from server...
    myResult = mysql_store_result(myDatabase);
    
        // Failed...
        if(!myResult)
        {
            // Alert user...
            printf("] Error: Unable to retrieve result...\n");
            
            // Cleanup, abort, terminate...
            mysql_close(myDatabase);
            getch();
            return 0;        
        }
  
    // How many records were returned in the result set?
    
        // Calculate...
        unRecords = mysql_num_rows(myResult);
    
        // Alert user...
        printf("] Query: %d records found...\n", unRecords);
    
    // How many fields are present in a record?
        
        // Calculate...
        unFields = mysql_num_fields(myResult);
        
        // Alert user...
        printf("] Query: There are %d fields in each record...", unFields);
    
    // Output records...
    for(unIndex = 0; unIndex < unRecords; unIndex++)
    {
        // Fetch row from results...
        myRow = mysql_fetch_row(myResult);

        // Fetch fields from row...
        myField = mysql_fetch_fields(myResult);

        // Show record...
        printf("] Record: %d / %d\n", unIndex, unRecords);

        // Output all fields in this row...
        for(unFieldIndex = 0; unFieldIndex < unFields; unFieldIndex++)
        {
            // Output...
            printf("\t%s", myField[unFieldIndex].name);
        }
    }
    
    // Free result...
    mysql_free_result(myResult);
    
    // Close server connection...
    mysql_close(myDatabase);
    myDatabase = NULL;
    
    // Alert user, exit...
    printf("] Done, press any key to exit...\n");
    getch();
    return 0;
}

ich versuche auf einen Online MySQL Server zu kommen falls das noch relevant ist.. :)
 
Hast du es mal mit einem lokalen versucht? Meine Vermutung ist, das du mit dem angegebenen User nur lokal auf dem Server (also online) zugreifen darfst. Das findest du raus, wennn du raus, wenn du im phpMyAdmin auf dem Server die Benutzer-Settings ausliest. Die stehen in der Tabelle mysql.user. Wenn da bei deinem gewünschten User "localhost" drin steht, weißt du, warum es nicht klappt.
 
Ok Danke, ich schau mal nach ;-)

EDIT//

Ok ich hab nur localhost Rechte...
naja ich werde es mal bei http://www.db4free.net/
Vielen Dank
 
Zuletzt bearbeitet von einem Moderator:
Sorry 4 Doppelpost, aber ich wollte das nich noch it in den anderen reinklatschen...
habs jetz hingekriegt...
 
Zurück