MySQL Daten in einem Dialog abfragen



  • Hallo.

    Ich habe eine MySQL-Dose auf meinem Rechner laufen.
    Dort befindet sich eine Tabelle "Konto" mit den Spalten "Kontonummer" und "Vorname" und "Nachname".

    Wie kann ich an die Daten herankommen und sie in einem Editfeld ausgeben??



  • hmm lang ist es her, hmmm

    naja man kann sql statements in sql in visual c++ .net ect einbinden. dann kannst alles machen was man in standart sql auch machen kann. tabellen abfragen anlegen rechte und und und. aber lang ist es her dass ich dies mal gemacht habe. hab die unterlagen aber @home.

    braucht man glaub 2 dateien dazu, die man include muss

    dann kann man anfangen sql zu verwenden z.b. in der einfachen art wie

    SQL_ON
    .....
    ...
    
    SQL_OFF
    

    natuerlich heisst es nicht SQL_ON. musst mal googeln.



  • 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