BCB und MySQL C-Api



  • Hallihallo nochmal,

    erstmal FROHES NEUES ...

    So nun zu meinem Problem. Habe mir den MySQL Server und so installiert und mir Mal die Beispiele die dabei sind mit VC++ angeguckt und ausgeführt. Lief alles optimal.
    Ich wollte aber eigentlich mit BCB 5 arbeiten und hoffe jetzt auf eure Hilfe.

    Kann mir evtl. Jemand ein kleine funktionsfähiges Beispiel im Borland C++ Builder 5 geben, wo ich sehen kann, wie man mit meine DB verbunden wird und evtl. eine Abfrage ausgeführt wird.
    Habe mich jetzt schon mehrmals damit versucht eins selbst hinzubekommen aber irgendwie bekomm ich andauernd Fehler.
    Wäre demjenigen sehr verbunden für ein klitzkleines Beispiel. Es muss nich umfangreich sein.

    Danke schonmal



  • Wenn Du wirklich die C-API verwenden willst dann brauchst du eine LIB-Version der C-API für deinen BCB. Ich kenne mich damit und den ganzen Version nicht aus aber IMHO hat der BCB ein anderes LIB- Dateiformat als VC++.
    Da gibt es jedoch ein Tool von BCB welches diese Umwandelt.
    Musst du in deiner Docu gucken oder im BCB-Forum fragen.
    Auch wie Du eine LIB einbindest solltest du dort klären.

    Code-Bsp. für die C-API gibt es in der FAQ für Linux.



  • Hi hab die libmysql.dll umgewandelt und eingebunden in das Projekt.
    Kann mir evtl mal hierbei jemand helfen, dass sagt mir überhaupt nichtz.

    #include <iostream.h>
    #include <winsock>
    #include <windows>
    #include <mysql.h>
    
    #define HOST "localhost"
    #define USER "root"
    #define PASSWD ""
    #define DB_NAME "mysql"
    #define PORT 1433
    
    int main( int argc, char * argv[] )
    {
    
         MYSQL *mysql = NULL; // Connection handler 
          mysql = mysql_init(NULL); 
    
          if(mysql != NULL) 
              if(mysql_real_connect(mysql,HOST, USER,PASSWD, DB_NAME, PORT, NULL, 0))
                return false;
    
          return true;
    
    }
    
    [Linker Fehler] Unresolved external '__InitVCL' referenced from C:\PROGRAMME\BORLAND\CBUILDER5\LIB\CP32MTI.LIB|crtlvcl
    [Linker Fehler] Unresolved external '__ExitVCL' referenced from C:\PROGRAMME\BORLAND\CBUILDER5\LIB\CP32MTI.LIB|crtlvcl
    

    libmysql.lib hab ich dem Proejkt hinzugefügt und die libmysql.dll befindet sich im Verzeichnis



  • Du hast da auf gut deutsch Müll gebaut, weil du alles was vorher in der Datei stand gelöscht hast. Du hast bestimmt ne "neue Anwendung" erstellt. das ist aber ein vordefiniertes Gerüst mit nem Fenster etc. das man nicht löschen darf. Das was du da jetzt versuchst, wird ne Konsolenanwendung. Such einfach mal im BCB-Forum nach Konsolenanwendung 😉



  • NeNe, Ich habe schon den Konsolenexperten bentutzt



  • Dann sollte er aber nicht die VCL benutzen wollen. Das ist nämlich GUI....



  • Hallo, hatte den Fehler gemacht, dass ich beim Konsolenexperten die VCL mit eingebunden hatte. 🙂
    Thx für Hilfe. Habe jetzt aber noch ein klitzekleines Problem und zwar zeigt mir der untenstehende Code immer an, dass ich verbunden bin, mit dem MySQL Server. Egal ob er aus oder an ist.

    #include <iostream.h>
    #include <winsock>
    #include <mysql.h>
    
    #define HOST "localhost"
    #define USER "root"
    #define PASSWD ""
    #define DB_NAME "mysql"
    #define PORT 1433
    
    int main( int argc, char * argv[] )
    {
         double a;
         MYSQL *mysql = NULL;
          mysql = mysql_init(NULL); 
    
          if(mysql != NULL)
          {
              if(!mysql_real_connect(mysql,HOST, USER,PASSWD, DB_NAME, PORT, NULL, 0))
              {
                cout << "Yo bin drin";
                cin.get();cin.get();
                return true;
              }
              else
              {
                cout << "Ne noch nicht";
                cin.get();cin.get();
                return false;
              }
          }
          cin.get();cin.get();
    
          return true;
    }
    

    Kann mir jemand erklären wieso ?



  • int main(int argc, char *argv[])
    {
    MYSQL * hconnection;
    
       hconnection = mysql_init(NULL);
       if (hconnection == NULL)
       {
          fprintf(stderr,”Fehler bei mysql_init().\n”);
          exit(1);
       }
    
       if (mysql_real_connect(
                          hconnection,
                          “localhost”,
                          “username”,
                          “password”,
                          “database”,
                          0,
                          NULL,
                          0) == NULL)
       {
          fprintf(stderr,”Fehler bei
                         mysql_real_connect().\n”);
          fprintf(stderr,“%s\n“,mysql_error(hconnection));
          exit(1);
       }
    
       mysql_close(hconnection);
    
    exit(0);
    }
    

    Versuche mal das



  • Hallo 🙂

    Hat Alles Prima geklappt und wollte mich nun noch bei euch bedanken das ihr mir so tollll geholfen habt :):):).

    Denke den rest krieg ich schon alleine hin, aber der Anfang ist ja bekanntlich immer schwer. Hoffe natürlich trotz dieser GROßEN Worte von mir, dass ihr mir trotzdem weiter helft falls ich mal in der krise stecke ;).

    DANKE schön und gruß

    ;););)


Anmelden zum Antworten