VC++ Express & MySQL (WinAPI) ???
-
Hallo,
Ich habe mal wieder eine Frage
Ich möchte mit VC++ Express auf eine Lokale und auf ein Webserver laufende MySQL Datenbank zugreifen. Ich habe natürlich wie immer hier und bei google.de geschaut jedoch nichts gescheites gefunden.
Auf c-plusplus.net bin ich auf den Artikel "Datenbank mit C - Teil 1" gestoßen. Habe da wie beschrieben die MysQL DB 4.1 installiert und Konfiguriert. Dann habe ich probiert eine Verbindung zur Datenbank herzustellen, bei erfolgsfall soll ein MessageBox ausgegeben werden.
Hier mein Code:
#include "E:\MySQL\MySQL Server 4.1\include\mysql.h" #include "stdafx.h" #pragma comment(lib,"libmysql.lib"); void funcMySQL (HWND hwnd, TCHAR szAppName[100]) { MYSQL *Connection; // MySQL Handle MYSQL_RES *Ergebnis; // Ergebnis einer Abfrage TCHAR Abfrage[10000]; // SQL Befehle MYSQL_ROW Zeile; // Ergebniszeile int Anz; // Anzahl der Zeilen int i; Connection = mysql_init(NULL); // Verbindung zum MySQL Server aufbauen if(mysql_real_connect( Connection, // MySQL Handle "localhost", // Host Name "root", // User "", // Passwort "mysql", // Datenbank 0, // Port (Standard: 0) NULL, // Socket (Standard: NULL) 0) == NULL) { // Fehlermeldung ausgeben MessageBox (NULL, TEXT ("Es konnte keine Verbindung mit dem MySQL Server hergestellt werden!"), szAppName, MB_ICONERROR); } else { MessageBox(NULL, TEXT ("Sie sind jetzt mit dem MySQL Server verbunden!"), szAppName, MB_OK|MB_ICONINFORMATION); } mysql_close(Connection); }
Wenn ich jetzt Debugge kommt folgende Fehlermeldung:
1>------ Erstellen gestartet: Projekt: HOGZ Client, Konfiguration: Debug Win32 ------ 1>Kompilieren... 1>HOGZ Client.cpp 1>e:\mysql\mysql server 4.1\include\mysql_com.h(155) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'fd' 1>e:\mysql\mysql server 4.1\include\mysql_com.h(155) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. 1>e:\mysql\mysql server 4.1\include\mysql_com.h(155) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. 1>e:\mysql\mysql server 4.1\include\mysql_com.h(299) : error C2065: 'SOCKET': nichtdeklarierter Bezeichner 1>e:\mysql\mysql server 4.1\include\mysql_com.h(299) : error C2146: Syntaxfehler: Fehlendes ')' vor Bezeichner 's' 1>e:\mysql\mysql server 4.1\include\mysql_com.h(299) : error C2059: Syntaxfehler: ')' 1>f:\winapi\hogz client\hogz client\funcmysql.h(4) : warning C4081: 'newline' erwartet; ';' gefunden 1>Das Buildprotokoll wurde unter "file://f:\WinAPI\HOGZ Client\HOGZ Client\Debug\BuildLog.htm" gespeichert. 1>HOGZ Client - 6 Fehler, 1 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
Nun weiß ich nicht ob ich die libmysql.lib richtig eingefügt habe. Ich habe unter Projekt Eigenschaften -> Linker -> Algemein -> zusätzliche Bibliotheksverzeichnisse den Lib Ordner (E:\MySQL\MySQL Server 4.1\lib\opt) hinzugefügt. Und im Projekt via Pragma die Lib geladen!
Laut Fehlermeldung gibs ja noch Probleme mit der Headerdatei mysql_com.h, und halt ein Problem mit C++ das er den Befehl nicht kennt. Es muss doch aber auch mit C++ möglich sein, eine Verbindung mit MySQL herzustellen oder?
Wenn ja kennt wer ein Tutorial? Oder kann mir sagen wie es funktioniert?
Gruß Funjoy
-
Hallo,
Hat sich erledigt habe es hinbekommen
Habe die Socket Headerdatei vergessen
Schaut also jetzt so aus für die, die es interessiert:
#include <winsock2.h> #include "E:\MySQL\MySQL Server 4.1\include\mysql.h" #include "stdafx.h" #pragma comment(lib,"libmysql.lib") void funcMySQL (HWND hwnd, TCHAR szAppName[100]) { MYSQL *Connection; // MySQL Handle MYSQL_RES *Ergebnis; // Ergebnis einer Abfrage TCHAR Abfrage[10000]; // SQL Befehle MYSQL_ROW Zeile; // Ergebniszeile int Anz; // Anzahl der Zeilen int i; Connection = mysql_init(NULL); // Verbindung zum MySQL Server aufbauen if(mysql_real_connect( Connection, // MySQL Handle "localhost", // Host Name "root", // User "", // Passwort "mysql", // Datenbank 0, // Port (Standard: 0) NULL, // Socket (Standard: NULL) 0) == NULL) { // Fehlermeldung ausgeben MessageBox (NULL, TEXT ("Es konnte keine Verbindung mit dem MySQL Server hergestellt werden!"), szAppName, MB_ICONERROR); } else { MessageBox(NULL, TEXT ("Sie sind jetzt mit dem MySQL Server verbunden!"), szAppName, MB_OK|MB_ICONINFORMATION); } mysql_close(Connection); }
Gruß Funjoy
-
wo ist denn die mysql.h, habe mysql 5.0 drauf, wegen wow server, aber wo ist die mysql h, und den ordner include gibts bei mir auch nicht
Ich bekomme nur eine fehlermedung und zwar das das eine falsche directory ist
Muss ich mir etwa noch etwas runter laden?
-
Hallo,
Lese dir mal dieses Tutorial durch:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-173240.htmlGruß Funjoy
-
Also ich habe das so wie in der anleitung gemacht, nur jetzt ist das poblehm das er mir beim kompilieren folgendes anzeigt:
LINK : fatal error LNK1104: Datei "libmysql.lib" kann nicht geöffnet werden.
Also, finden tut er die datei ja, aber warum schafft er es nicht sie zu öffnen?
-
Hallo,
Hast du bei dein Projekt auch folgendes gemacht:
Projekt Eigenschaften -> Linker -> Algemein -> zusätzliche Bibliotheksverzeichnisse
Und dort das Verzeichnis zu den Lib von MySQL angegeben?
Sollte so aussehen E:\MySQL\MySQL Server 4.1\lib\optGruß Funjoy
-
oh, habe da noch im pfad die libmysql.lib eingetragen
Also das geht jetzt, aber nun kommt das hier:
MSVCRTD.lib(crtexew.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_WinMain@16" in Funktion "___tmainCRTStartup".
C:\Dokumente und Einstellungen\Dustin.TRANCE\Eigene Dateien\Visual Studio 2005\Projects\mysql\Debug\mysql.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.Was hat das bloß zu bedueten?
-
Showball schrieb:
oh, habe da noch im pfad die libmysql.lib eingetragen
Also das geht jetzt, aber nun kommt das hier:
MSVCRTD.lib(crtexew.obj) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_WinMain@16" in Funktion "___tmainCRTStartup".
C:\Dokumente und Einstellungen\Dustin.TRANCE\Eigene Dateien\Visual Studio 2005\Projects\mysql\Debug\mysql.exe : fatal error LNK1120: 1 nicht aufgelöste externe Verweise.Was hat das bloß zu bedueten?
hm...hab meine vc-configuration jetzt leider zu haus, aber ab da gab es mein ich noch ein extra verzeichnis wenn man das im DEBUG-Modus kompiliert. das /opt Verzeichniss ist für die releaseconfiguration. da müsste es /debug auch geben.
-
Hmm, habe jetzt plötzlich nen ganz anderes problehm
So sieht mein Quellcode aus:
#include <windows.h> #include <winsock2.h> #include "C:\Programme\MySQL\MySQL Server 6.0\include\mysql.h" #include "stdafx.h" #include "hvhjbhlk.h" #pragma comment(lib,"libmysql.lib") void funcMySQL (HWND hwnd, TCHAR szAppName[100]) { MYSQL *Connection; // MySQL Handle MYSQL_RES *Ergebnis; // Ergebnis einer Abfrage TCHAR Abfrage[10000]; // SQL Befehle MYSQL_ROW Zeile; // Ergebniszeile int Anz; // Anzahl der Zeilen int i; Connection = mysql_init(NULL); // Verbindung zum MySQL Server aufbauen if(mysql_real_connect( Connection, // MySQL Handle "xxx", // Host Name "xxx", // User "xxx", // Passwort "xxx", // Datenbank 0, // Port (Standard: 0) NULL, // Socket (Standard: NULL) 0) == NULL) { // Fehlermeldung ausgeben MessageBox (NULL, TEXT ("Es konnte keine Verbindung mit dem MySQL Server hergestellt werden!"), szAppName, MB_ICONERROR); } else { MessageBox(NULL, TEXT ("Sie sind jetzt mit dem MySQL Server verbunden!"), szAppName, MB_OK|MB_ICONINFORMATION); } mysql_close(Connection); }´
Ich habe bei den mysql angaben bei allen werten xxx aus sicherheit xxx eingetragen, aber bei mir habe ich natürlich pw etc eingetragen...
naja, und das hier Spuckt er mir beim kompilieren aus:
c:\dokumente und einstellungen\dustin\eigene dateien\visual studio 2005\projects\hvhjbhlk\hvhjbhlk\hvhjbhlk.cpp(12) : error C2065: 'MYSQL': nichtdeklarierter Bezeichner
c:\dokumente und einstellungen\dustin\eigene dateien\visual studio 2005\projects\hvhjbhlk\hvhjbhlk\hvhjbhlk.cpp(12) : error C2065: 'Connection': nichtdeklarierter Bezeichner
c:\dokumente und einstellungen\dustin\eigene dateien\visual studio 2005\projects\hvhjbhlk\hvhjbhlk\hvhjbhlk.cpp(13) : error C2065: 'MYSQL_RES': nichtdeklarierter Bezeichner
c:\dokumente und einstellungen\dustin\eigene dateien\visual studio 2005\projects\hvhjbhlk\hvhjbhlk\hvhjbhlk.cpp(13) : error C2065: 'Ergebnis': nichtdeklarierter Bezeichner
c:\dokumente und einstellungen\dustin\eigene dateien\visual studio 2005\projects\hvhjbhlk\hvhjbhlk\hvhjbhlk.cpp(15) : error C2065: 'MYSQL_ROW': nichtdeklarierter Bezeichner
c:\dokumente und einstellungen\dustin\eigene dateien\visual studio 2005\projects\hvhjbhlk\hvhjbhlk\hvhjbhlk.cpp(15) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'Zeile'
c:\dokumente und einstellungen\dustin\eigene dateien\visual studio 2005\projects\hvhjbhlk\hvhjbhlk\hvhjbhlk.cpp(15) : error C2065: 'Zeile': nichtdeklarierter Bezeichner
c:\dokumente und einstellungen\dustin\eigene dateien\visual studio 2005\projects\hvhjbhlk\hvhjbhlk\hvhjbhlk.cpp(19) : error C3861: "mysql_init": Bezeichner wurde nicht gefunden.
c:\dokumente und einstellungen\dustin\eigene dateien\visual studio 2005\projects\hvhjbhlk\hvhjbhlk\hvhjbhlk.cpp(22) : error C3861: "mysql_real_connect": Bezeichner wurde nicht gefunden.
c:\dokumente und einstellungen\dustin\eigene dateien\visual studio 2005\projects\hvhjbhlk\hvhjbhlk\hvhjbhlk.cpp(45) : error C3861: "mysql_close": Bezeichner wurde nicht gefunden.
c:\dokumente und einstellungen\dustin\eigene dateien\visual studio 2005\projects\hvhjbhlk\hvhjbhlk\hvhjbhlk.cpp(47) : fatal error C1004: Unerwartetes Dateiende gefunden.kann mir jeamand weiterhelfen?