MySQL Daten in einem Dialog abfragen



  • Das kommt darauf an. Was willst du benutzen? Die Mysql-C-Api oder die Mysql-C++-Api?



  • Maffe001 schrieb:

    Was willst du benutzen?

    Die C++ API weil meine Gruppe und ich das für C++ programmieren müssen. (Ist für die Schule (kurz vorm Abschluss)).

    Auf Mysql.de haben wir eine APi runtergeladen wo auch Beispiele drin waren, aber davon haben wir nix verstanden. Wir sind jetzt auf der Suche nach einem simplen Programmbeispiel anhand dessen wir verstehen können wie wir arbeiten müssen. Das Dialogbeispiel ist das recht gut.



  • Sorry, ich kann dir nur mit der C-Api weiterhelfen. Ich hab auch eine C++-Anwendung geschrieben, allerdings mit der C-Api, weil es Gründe gab, die gegen die C++-Api sprachen, die mir allerdings heute auch nicht einfallen.



  • Könnte ich denn die Abfrage aus der Datenbank auch mit der C-Api in ein C++ Programm einbinden?



  • Ja klar. Mach ich ja auch. Ist auch völlig unproblematisch. Ich hab allerdings ne Weile gebraucht, bis ich's raus hatte eine Abfrage auszuwerten.



  • Wäre es möglich dass du mir ein Beispielprogramm mit einem Dialog erstellst und mir gezippt auf email schickst? Ich brauche nur einen Dialog um zu sehen wie das überhaupt abläuft. Als nächstes müsste ich dann Daten verändern können.



  • Ich werd dir ein paar Schnippsel aus meinem Programm zeigen, wie ich Verbindung herstelle usw.. Dann kannst du ja schauen, ob du damit klar kommst. 😃



  • Ja cool, das freut mich!
    Wenn du willst, poste den Code hier ins Forum.
    Kannst mir aber auch per mail schicken: roodypoo[at]gmx.deutschland



  • Verbindung zum Server herstellen:

    //MYSQL *hDB;
      hDB = mysql_init (NULL); //Initialisierung des Handles
      mysql_real_connect (hDB, "", "", 0, 0, 0, 0, 0); //Verbindung lokal erstellen
    
      int DBStatus = mysql_ping (hDB); //Überprüfung der Verbindung
      if (DBError(DBStatus))
      {
        <Fehlercode>
      }
    

    Hilfsfunktionen:

    int TDBHandle::DB_Error (int DBStatus)
    {
      if (DBStatus != 0)
      {
        sprintf (ErrMsg, "%s", mysql_error (hDB)); //Ausgabe des MySql - Fehlers
        return (1);	 //Stoppt den Rest des Programms
      }
      else
      {
        sprintf (ErrMsg, "Kein Fehler aufgetreten!");
        return (0); //Kein Fehler
      }
    } //DB_Error
    
    int TDBHandle::Query (char *DBStrg)
    {
      int DBStatus = mysql_query (hDB, DBStrg);
      int Error = DB_Error(DBStatus);
      if (Error)
        DBHandleStatus = DB_L_ERROR;
      return Error;
    } //Query
    

    Abfrage auf die MySql-DB:

    TList *TDBHandle::Return_Parameter (int Modus)
    {
      switch (Modus)
      {
        case AS3:
          sprintf (DBStrg, "select parameter from parameter where typ = 'as3'");
          break;
    
        case PICCO:
          sprintf (DBStrg, "select parameter from parameter where typ = 'picco'");
          break;
      } //switch (Modus)
    
      TList *ParList = NULL;
    
      int Error = Query (DBStrg);
      if (!Error)
      {
        MYSQL_RES *Res; 
        MYSQL_ROW Zeile;
        ParList = new TList; //spez. Typ, gibt's glaube ich nur beim BCB
    
        Res = mysql_store_result (hDB); //Ergebnis holen
        while (Zeile = mysql_fetch_row (Res)) //Ergebnis auslesen
        {
          char *Par = new char [strlen (Zeile[0])+1];
          sprintf (Par, Zeile[0]);
          ParList->Add (Par);
        }
        mysql_free_result (Res);
      }
      return ParList;
    } //TList *DBHandle::Return_Parameter (int Modus)
    

    Du siehst Abfragen werden genauso eingegeben, wie als wenn du an einer MySql-Konsole sitzt. Ist eigentlich gar nicht so schwer. 😃



  • Shau mal auf meiner Website. Da gibt eine MFC-Klasse



  • Thanks für eure Hilfe. Morgen früh gehts dann direkt los 😉


Anmelden zum Antworten