Meister_Max: MySQL und C++

Ich hab versucht mit einem C++ Programm auf eine MySQL Datenbank zuzugreifen, mein Compiler(Bloodshed Dev-C++) hatte nur leider keine MySQL funktionen weshalb ich erst dachte das das wohl nicht möglich ist. Aber mit ein Bischen googlen hab ich dafür die Nötigen Header und die libmySQL.dll gefunden. Mein Compiler nimmt die Header ohne Probleme, und die dll hab ich ins Windows\System32 Verzeichnis kopiert und mit der rundll32.exe aufgerufen, leider funktionierte das nicht so wie ich dachte, selbst mit einem einem Beispiel aus dem Internet das eigentlich funktionieren müsste bekomme ich zu jeder MySQL funktion eine Solche fehlermeldung :   [Linker error] undefined reference to `mysql_init@4' . Ich schätze mal das ligt daran das er die libmySQL.dll nicht findet. Kann mir jemmand sagen wie ich die Richtig einbinden muss ? Oder kennt jemmand nen Forum wo mir die Frage beantwortet werden kann ?

  1. Hallo,

    Könnte sein, dass es an Versionskonflikten liegt - warum MySQL direkt ansteuern, probier's doch mal über ODBC :)

    Viele Grüße,
    Michael

    --


    --

    Online Petitionen gegen Software Patente:
    http://petition.eurolinux.org/index_html?LANG=de
    1. Könnte sein, dass es an Versionskonflikten liegt - warum MySQL direkt ansteuern,

      Naja mein Borland Compiler hatte schon genug versionskonflikte. Das war der Grund warum ich mir erst überhaupt Bloodshed gezogen hab.

      probier's doch mal über ODBC :)

      würd ich ja gern machen nur leider hab ich keine Ahnung wie. Ich hab noch nie hinbekommen ODBC Funktionen zum laufen zu bringen.

    2. Moin!

      Könnte sein, dass es an Versionskonflikten liegt - warum MySQL direkt ansteuern, probier's doch mal über ODBC :)

      Ich kann dem Frager zwar auch keine bessere oder konkretere Auskunft geben als Du, aber ich weiss das man ODBC möglichst vermeidet und zwar aus Performancegründen.

      Meines Wissens habe ich irgendwo bei MySQL.com gelesen, man solle sich die Quelltexte des MySQL- Clients anschauen um zu sehen, wie der Zugriff funktioniert und welche der Bibliotheken benötigt werden. Es gibt es gerade von MySQL.com ausgehend eine Menge Links zu OpenSource-Software, die Dir Hilfestellung geben kann. Schau Dir also einfach mal die Quelltexte der verschiedenen Clients an. Da steht auch irgendwas von Intel C++ shared librarys. Die Windows- Sourcen stehen bei MySQL.com immer ganz unten...
      z.B.:
      http://dev.mysql.com/downloads/mysql/4.0.html

      Auf seine Frage erhält der Threadbegründer sicher eine Antwort im enstprechenden Forum:
      http://forums.mysql.com/, Zumal dort eien ähnliche Frage bereits gepostet ist:
      http://forums.mysql.com/read.php?20,3719,3719#msg-3719

      MFFG (Mit freundlich- friedfertigem Grinsen)

      fastix®

      --
      Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
      1. Naja, denn geht meine suche weiter, irgendwann werd ich schon rausbekommen wies geht.

        Ich kann dem Frager zwar auch keine bessere oder konkretere Auskunft geben als Du, aber ich weiss das man ODBC möglichst vermeidet und zwar aus Performancegründen.

        Danke für die Warnung mit der Perfomance. Das Projekt ist ziemlich großangelegt soll irgendwann mal nen paar 100 User haben. Und da wäre es nicht gut wenn das Programm wegen dem Datenbank zugriff immer Langsamer wird.

        Danke für die Antwort.

  2. Hallo,

    [Linker error] undefined reference to `mysql_init@4' . Ich schätze mal das ligt daran das er die libmySQL.dll nicht findet. Kann mir jemmand sagen wie ich die Richtig einbinden muss ?

    mir scheint dem Linker fehlt der Path zur libmySQL.dll. Wurde diese Komponente dem Projekt durch hinzufügen bekannt gemacht ??

    mfg

    Das Schmunzelmonster

    1. Das das nen ich hab se im lib verzeichnis ligen, ich weiß nicht ob ihm das reicht allerdings weiß ich nicht wie ich das ding sonst linken sollte

  3. Hallo Max,

    [...] [Linker error] undefined reference to `mysql_init@4' .

    Du musst deinem Compiler noch sagen, dass er das Programm gegen deine libmysql.dll linken
    soll. Wie du das machst entnimmst du am besten dem Handbuch deines Compilers. Beim MS VC++
    muss man das z. B. ueber Kommandozeilen-Flags (-lmysql) sagen, die man in irgend einem
    Dialog einstellen kann. Beim GCC sieht es genau so aus. Wie es jetzt bei dir aussieht, kann
    dir nur deine Dokumentation verraten.

    Grüße,
     CK

    --
    Mit einem Windhauch kannst du das Feuer loeschen. Mit einem Windhauch kannst du das Feuer entfachen.
    http://wwwtech.de/
    1. Hab versucht dem Linker die libmysql anzudrehen aber da bekomm ich auch nur

      Error: 'D:\PROGRAMME\XAMPP\MYSQL\LIB\LIBMYSQL.LIB' contains invalid
      OMF record, type 0x21 (possibly COFF)

      Ich hab keine Idee was ich machen soll.