Wie kann ich mit C++ auf MySQL zugreifen?
-
(D)Evil schrieb:
Die C-API ist bei MySQL dabei, solange du MySQL Server als Development Machin installierst.
Ok, dann hatte ich das soweit richtig verstanden ...
(D)Evil schrieb:
Die C++-"API" findest du bei oben genannter Zitatquelle oder bei http://tangentsoft.net/mysql++/ . Wobei letztere die offizielle Projekt-Webseite ist. http://tangentsoft.net/mysql++/releases/mysql++-2.3.2.tar.gz ist der Quellcode der aktuellen Version. Musst du dir nur entsprechend builden und schon kannst du ihn nutzen

Super, da hast Du mir jetzt aber ein ganz gewaltiges Stueck weitergeholfen, denn trotzt stundenlangem googeln sind mir die beiden Links bisher unbekannt und leider habe ich trotzt recht intensiver Suche auch hier im Forum nichts gefunden.
Ok, dann will ich mich da gleich mal ranmachen, schlafen kann ich ja auch spaeter noch ...

Vorerst mal ein grosses DANKESCHOEN fuer Deine Muehe.
Gruss
Guenther
-
Ich habe mir heute mal MySQL++ installiert, scheint ja ein sehr maechtige Paket zu sein ...
Doku und Beispiele habe ich auch bereits studiert, kriege aber leider selbst kein Programm, also weder die mitgeleiferten Examples noch eigenen Code compiliert.
Ich lande immer bei der Fehlermeldung:
undefined reference to `connect_to_db(int, char**, mysqlpp::Connection&, char const*)' collect2: ld returned 1 exit statusWenn ich's richtig interpretiere, dann fehlt dem Linker eine Library, nur welche ist das?
Aktuell habe ich die mysqlclient, mysqlclient_r und mysqlpp eingebunden, aber da scheint noch was zu fehlen, oder??
Gruss
Guenther
-
Frag doch sowas im Datenbank-Forum (weiter unten) nach. Hier gehts um ISO-C++ und nicht um Compiler und Linker und fremde Libs.
-
Also nach dem ganzen Theater, welches du durchgemacht hast. Hier noch ein Tip von mir. Nimm die C-Api, bastel ne Klasse drum rum. Hab ich auch gemacht und noch nie Probleme damit gehabt. Ist auch gar nicht so groß.
-
Dem Linker fehlt scheinbar die MyAQL-C-API. Überprüf mal die Einstellungen im Linker, ob die abhängigen Bibliotheken auch den richtigen Pfad haben. Ich hab den Wrapper auch schon benutzt und der funktioniert super, da brauchst dir nichts eigenes basteln eigentlich.
Greetz
-
Hi,
gboelter schrieb:
denn trotzt stundenlangem googeln
nach was genau hast du denn gegoogelt? Mit den Begriffen "Mysql++" "API" kann man schon ganz gut was anfangen...
-
Nur mal kurz zur Erklaerung:
Ich versuche reines ANSI C++ zu lernen, auch wenn das am Anfang nicht immer gleich so klappt. Und genau das war fuer mich der Grund, warum ich meine Fragen hier im C++ Forum gestellt habe.
Sicherlich hat meine urspruengliche Frage auch was mit Datenbanken & MySQL zu tun, aber mir geht es darum, wie ich den C++ Teil realisieren kann. Mit der Datenbankseite habe ich keine Probleme. Und eben genau deshalb interessieren mich eben Dinge wie diese MySQL++.
Denn so wie ich's bisher verstanden habe, ist das ja genau die eine Library, die es moeglich macht mittels C++ auf die Datenbank zuzugreifen und nicht zum Beispiel nur ueber C. Denn Libraries schaue mir derzeit eigentlich nur an, um daraus zu lernen.
Benutzen tue ich sie nicht, so wie ich derzeit auch keine IDE verwende, sondern einen recht simplen Texteditor unter Linux.
Das waren so meine Ueberlegungen, als ich darueber nachgedacht habe, in welchem Forum ich denn nun diese Fragen stelle.
Sollte aber eine Moderator der Meinung sein, dieser Thread sollte doch besser verschoben werden, so haette ich damit natuerlich auch keine Probleme.
Ihr wisst ja, "hinterher ist man immer schlauer", meistens jedenfalls.
Trotzdem vielen Dank an alle die versucht haben mir auch hier zu helfen und nichts fuer ungut, ich werd's schon noch lernen ...
Gruss
Guenther
-
Hi,
gboelter schrieb:
Ich versuche reines ANSI C++ zu lernen, auch wenn das am Anfang nicht immer gleich so klappt. Und genau das war fuer mich der Grund, warum ich meine Fragen hier im C++ Forum gestellt habe.
ISO C++ beinhaltet aber leider keine Schnittstellen zu irgendwelchen Datenbanken. Sobald du externe Libs benutzt, ist es kein Standard mehr. Die Frage ist eben auch, ob solche Aktionen den Lernprozess nicht eher verhindern als fördern, denn wenn du die Grundlagen nicht kennst, wird es ziemlich kompliziert, alles auseinanderzuhalten.
Denn so wie ich's bisher verstanden habe, ist das ja genau die eine Library, die es moeglich macht mittels C++ auf die Datenbank zuzugreifen und nicht zum Beispiel nur ueber C. Denn Libraries schaue mir derzeit eigentlich nur an, um daraus zu lernen.
Genau. Und du musst sowohl Header einbinden als auch dem Linker sagen, welche Libs du brauchst.
Letzteres kannst du übrigens mit der -l option tun.
-
CarstenJ schrieb:
Genau. Und du musst sowohl Header einbinden als auch dem Linker sagen, welche Libs du brauchst. Letzteres kannst du übrigens mit der -l option tun.
Da ist mir schon klar. Problem ist nur manchmal, und das geht sicherlich nicht nur mir so, zu wissen, welche Funktion denn nun in welcher Library steht; wie zum Beispiel aktuell bei mir die connect_to_db().
Bei den Header Files ist das ja meist noch einfach, weil ich mit z. B. mit grep oder was auch immer suchen kann, abeer eben nicht bei die Libs, oder kannst Du da einen Weg?
-
In der Doku steht:
Will it build under GCC 2.x?
No, it won't.Will it build under Visual C++.NET (a.k.a. Visual Studio 2002, a.k.a. Visual C++ 7.0) or earlier?
No, it won't.
ABER: Microsoft is giving away a limited but functional version of Visual C++ 2005 which works just fine with MySQL++.Ich arbeite auch mit der C-API von MySQL, läuft super. Das einbinden ist völlig problemlos aber wenn du gute Erfahrungen mit MySQL++ sammelst, kannst du ja mal Bescheid sagen

-
[quote="Badestrand"]In der Doku steht:
Will it build under GCC 2.x?
No, it won't.Danke fuer den Hinweis, aber den kannte ich schon. DEshalb arbeite ich ja auch mit "gcc (GCC) 4.1.2 20070626 (Red Hat 4.1.2-13)" ...

Badestrand schrieb:
Will it build under Visual C++.NET (a.k.a. Visual Studio 2002, a.k.a. Visual C++ 7.0) or earlier?
No, it won't.Ich dachte eigentlich, meine Signatur waere deutlich genug ...

-
Hi,
connect_to_db wird in "util.h" deklariert und in "util.cpp" implementiert. D.h. du musst das zusätzlich mitkompilieren. Es gibt also keine Library, mit der du das linken kannst.
Herausgefunden habe ich das auch nur, in dem den Sourcecode durchgesehen habe.
-
CarstenJ schrieb:
connect_to_db wird in "util.h" deklariert und in "util.cpp" implementiert. D.h. du musst das zusätzlich mitkompilieren. Es gibt also keine Library, mit der du das linken kannst.
Ich fass es nicht, aber genau das war das Problem. Die Funktion steht in keiner Lib sondern in einem cpp-File. Zugegeben, an diese Moeglichkeit habe ich ueberhaupt nicht gedacht, aber man lernt halt nie aus ...

CarstenJ schrieb:
Herausgefunden habe ich das auch nur, in dem den Sourcecode durchgesehen habe.
Nun ja, ein kleines README haette da wirklich nicht geschadet.
Dennoch, Du hast was gut bei mir, D A N K E!!!

Gruss
GuentherPS: Und beim naechsten Mal werde ich natuerlich Fragen rund um MySQL in "Datenbanken" stellen, versprochen ...
