Wie mit MySQL++ auf Datenbank zugreifen



  • Hallo Zusammen,

    bin vor kurzem von php auf c++ gewechselt.
    Und da habe ich direkt Probleme mit der Verbindung zu einer Datenbank.
    Ich lade mir diesen mysql++ connector runter, aber wohin kopiere ich die mysql++.h ?
    Da sie ja in spitzen klammern steht muss sie doch ins standardverzeichniss oder?
    wo befindet sich dieses denn, wenn ich mit visual studio programmiere?
    wäre schön wenn mir jemand schnell helfen könnte.
    gruß jan



  • Zu MySQL++ kann ich nicht viel sagen, außer: Nehmt lieber direkt MySQL! Eine Kapselung für die individuellen Bedürfnisse ist schnell geschrieben, denn MySQL hat sehr wenige Funktionen und structs, die man häufig benötigt.



  • ich hab aber mal so gar keine ahnung wie das gehen soll.
    Aber meine frage hat doch wenig mit mysql++ zu tuen, oder? ich will doch nur wissen wo man header dateien reinkopieren muss, damit ich diese über < > einbinden kann...



  • Also ich habe jetzt wie im Link oben, den Beispiel-Code genommen und diesen mit Visual Studio compliliert, nach dem ich die header-dateien von Mysql-server und mysql++ eingebunden habe.
    jetzt bekomme ich aber jede menge fehlermeldungen:

    z.b:
    1>stdafx.obj : error LNK2028: Nicht aufgelöstes Token (0A000177) ""public: __thiscall mysqlpp::mysql_type_info::mysql_type_info(class mysqlpp::mysql_type_info const &)" (??0mysql_type_info@mysqlpp@@ .... usw.
    ziehmlich kryptisch weiß gar nicht was ich damit soll

    wo muss ich eigentlich meine verbindungsdaten eingeben?!



  • ich nehm an du musst noch die mysql++.lib in deinen projekteinstellungen hinzufügen



  • ich krieg n krampf, ich habe jetzt das hauptverzeichnis wo ich den mysql server und die mysql++ installiert habe über Extras > Optionen > Projekte und Projektmappen > VC++ Verzeichnisse > und dann unter
    - Ausführbare Dateien
    - Includedateien
    - Verweisdateien
    - Bibliotheksdateien
    - Quelldateien
    eingebunden. Für jedes das gleiche Hauptverzeichnis "C:\Programme\Mysql". Also müsste doch jetzt alles drin sein, oder?
    Aber ich bekomm immer noch so was:

    allerdings hab ich die verzeichnisse noch mal gelöscht, dann bekam ich die gleichen fehler
    1>stdafx.obj : error LNK2028: Nicht aufgelöstes Token (0A000177) ""public: __thiscall mysqlpp::mysql_type_info::mysql_type_info(class mysqlpp::mysql_type_info const &)" (??0mysql_type_info@mysqlpp@@$$FQAE@ABV01@@Z)", auf das in Funktion ""public: __thiscall mysqlpp::Field::Field(class mysqlpp::Field const &)" (??0Field@mysqlpp@@$$FQAE@ABV01@@Z)" verwiesen wird.

    HELFT MIR BITTE



  • es reicht nich nur den pfad anzugeben

    du musst in deinem projekt sowohl die header mysql.h etc. als auch die lib mysql.lib oder so ähnlich einbinden



  • z.B. mit diesen beiden Zeilen

    #include <mysql.h>
    #pragma comment(lib, "mysql.lib")



  • das problem ist dass ich weder in dem mysql++ verzeichniss noch unter einem mysql-server verzeichniss eine lib datei finde



  • als erstes solltest du immer in der ofiziellen doku schaun

    http://tangentsoft.net/mysql++/doc/html/userman/incorporating.html#inc-vstudio schrieb:

    9.1. Visual C++
    9.1.1. Using MySQL++ in an MFC Project

    If you don’t already have a project set up, open Visual Studio, say File | New | Project, then choose Visual C++ | MFC | MFC Application. Go through the wizard setting up the project as you see fit.

    Once you have your project open, right click on your top-level executable in the Solution Explorer, choose Properties, and make the following changes. (Where it doesn’t specify Debug or Release, make the same change to both configurations.)

    Append the following to C/C++ | General | Additional Include Directories: C:\Program Files\MySQL\MySQL Server 5.0\include, C:\mysql++\include
    *

    Under C/C++ | Code Generation change “Runtime Library” to “Multi-threaded Debug DLL (/MDd)” for the Debug configuration. For the Release configuration, make it “Multi-threaded DLL (/MD)”.
    *

    Append the following to Linker | General | Additional Library Directories for the Debug configuration: C:\Program Files\MySQL\MySQL Server 5.0\lib\debug, C:\mysql++\vc\debug

    For the Release configuration, make it the same, but change the “debug” directory names to “opt”.
    *

    Under Linker | Input add the following to “Additional Dependencies” for the Debug configuration: libmysql.lib wsock32.lib mysqlpp_d.lib

    ...and then for the Release configuration: libmysql.lib wsock32.lib mysqlpp.lib

    This difference is because MySQL++’s Debug DLL and import library have a _d suffix so you can have both in the same directory without conflicts.

    You may want to study examples\vstudio\mfc\mfc.vcproj to see this in action. Note that some of the paths will be different, because it can use relative paths for mysqlpp.dll.
    9.1.2. Using MySQL++ in a Windows Forms C++/CLI Project

    Before you start work on getting MySQL++ working with your own program, you need to make some changes to the MySQL++ build settings. Open mysqlpp.sln, then right-click on the mysqlpp target and select Properties. Make the following changes for both the Debug and Release configurations:

    Under Configuration Properties | General, change “Common Language Runtime support” to the /clr setting.
    *

    Under C/C++ | Code Generation, change “Enable C++ Exceptions” from “Yes (/EHsc)” to “Yes With SEH Exceptions (/EHa)”

    If you have already built MySQL++, be sure to perform a complete rebuild after changing these options. The compiler will emit several C4835 warnings after making those changes, which are harmless when using the DLL with a C++/CLI program, but which warn of real problems when using it with unmanaged C++. This is why MySQL++’s Windows installer (install.hta) offers the option to install the CLR version into a separate directory; use it if you need both managed and unmanaged versions installed!

    For the same reason, you might give some thought about where you install mysqlpp.dll on your end user’s machines when distributing your program. My recommendation is to install it in the same directory as the .exe file that uses it, rather than installing into a system directory where it could conflict with a mysqlpp.dll built with different settings.

    Once you have MySQL++ built with CLR support, open your program’s project. If you don’t already have a project set up, open Visual Studio, say File | New | Project, then choose Visual C++ | CLR | Windows Forms Application. Go through the wizard setting up the project as you see fit.

    The configuration process isn’t much different from that for an MFC project, so go through the list above first. Then, make the following changes particular to .NET and C++/CLI:

    Under Configuration Properties | General change the setting from /clr:pure to /clr. (You need mixed assembly support to allow a C++/CLI program to use a plain C++ library like MySQL++.)
    *

    For the Linker | Input settings, you don’t need wsock32.lib. The mere fact that you’re using .NET takes care of that dependency for you.

    In the MFC instructions above, it said that you need to build it using the Multi-threaded DLL version of the C++ Runtime Library. That’s not strictly true for MFC, but it’s an absolute requirement for C++/CLI. See the Remarks in the MSDN article on the /clr switch for details.

    You may want to study examples\vstudio\wforms\wforms.vcproj to see all this in action. Note that some of the paths will be different, because it can use relative paths for mysqlpp_d.dll and mysqlpp.dll.


Anmelden zum Antworten