C++/CLI und MySQL
-
Hallo liebe Community!
Ich arbeite seit längeren schon mit dem .NET Framework in C++ und bin nun an dem Punkt angelang wo ich eine Verbindung zu MySQL herstellen möchte. Jedoch finde ich keinerlei Tutorials etc wie ich das in C++/CLI realisieren könnte. Ich finde lediglich einige Tut bezüglich reinem C++ aber nicht in Verbindung mit dem .Net Framework.
Habt ihr vielleicht eine Idee?
MFG Blade
-
Schau Dir ADO.Net an. Wenn es keinen speziellen .Net Treiber gibt, kannst Du die ODBC geschichten verwenden und darüber eine Verbindung aufbauen.
http://www.c-plusplus.net/forum/viewtopic-var-t-is-178869.html
-
Ok danke, allerdings ist bei ADO.NET der Connector für c# geschrieben. Hm werd ich wohl mit dem ODBC Treiber arbeiten müssen. Habe allerdings gelesen das dieser sehr langsam sein soll bei MySQL....
Ist da etwas dran oder liegt es einfach nur an der Umsetzung?
MFG Blade
-
DonBlade schrieb:
allerdings ist bei ADO.NET der Connector für c# geschrieben
Man kann alle .net Komponenten in allen .net Sprachen verwenden.
Wo ist das Problem ?
DonBlade schrieb:
Habe allerdings gelesen das dieser sehr langsam sein soll bei MySQL....
Ist da etwas dran oder liegt es einfach nur an der Umsetzung?
ODBC ist allgemein weniger performant.
-
Hier ein Minimal-Beispiel einer ODBC-Verbindung zu MySQL.
Setzt voraus, das MySQL und MySQL Connector/ODBC auf dem lokalen Rechner installiert sind. Die DSN wird dabei automatisch eingerichtet (Systemsteuerung -> Datenquellen (ODBC)).
using namespace System; using namespace System::Data::Odbc; int main(array<System::String ^> ^args) { OdbcConnection^ con = gcnew OdbcConnection("DSN=myodbc3-test"); con->Open(); OdbcCommand^ cmd = gcnew OdbcCommand("USE test", con); cmd->ExecuteNonQuery(); con->Close(); return 0; }
-
Man kann alle .net Komponenten in allen .net Sprachen verwenden.
Naja es verwirrt mich ein wenig, weil die Beispiele alle für die C# Sprache geschrieben wurden. Es wäre toll wenn es aber auch Beispiele für C++/CLI gäbe.
Aber theoretisch müsste der Quellcode doch auch übertragbar sein oder?
MFG Blade
-
Naja, es benutzen ja auch nur sehr wenige Leute C++/CLI.
Aber C# Beispiele lassen sich in der Regel relativ einfach in C++/CLI übersetzen.
-
Wenn du ein echter Programmierer bist, kannst du auch die C#-Beispiele in C++/CLI umdenken. Das sollte man von jemanden erwarten können. Vorallem da sich die Sprachen nun wirklich ähnlich sind. Sollst ja kein Assember-Beispiel in C++/CLI umdenken.
-
Stimmt, ihr habt recht, es ist wirklich nicht schwer das ganze umzufunktionieren.
Ich danke euch vielmals für eure Hilfe!Eine Frage ist aber beim Lernen noch aufgekommen. Wo ich damals mit Delphi gearbeitet habe hatte ich den Datentyp Record, welcher mehrere Datentypen vereinigen konnte. In C++ hab ich gelernt, dass es dafür den Befehl Struct gibt. Wie siehts mit C++/CLI aus in der .NET Framework? Unter was kann ich da mal schauen?
MFG Blade
-
Also dieser C#-Code
struct Koordinate { public double x; public double y; }
kann in C++/CLI so
value struct Koordinate { double x; double y; };
oder so aussehen
value class Koordinate { public: double x; double y; };
Wobei ich erstere Schreibweise bevorzugen würde.
In C# ist ein struct ein Werttyp, d.h. er kann wie ein int ohne new erzeugt werden.
Eine class ist ein Verweistyp, d.h. eine Instanz wird immer mit new erzeugt und auf dem verwalteten Heap gespeichert.In C++/CLI wird mit dem vorangestellten value oder ref entschieden, ob es sich um einen Verweis- oder Werttyp handelt.
Außerdem gibt es noch Stacksemantik für Verweistypen, so dass man beide mit und ohne gcnew anlegen kann.Wenn das jetzt zu kompliziert war, empfehle ich dir mal ein Buch zum Thema zu lesen.