MySQL - Datenbank ausm www
-
Ok, also nochmals alles was ich gemacht habe:
1.) Projekt erstellt
2.) Headerdatei databaselib.h zum Projekt hinzugefügt
3.) databaselibvc7.lib in Ordner Microsoft Visual Studio/Vc7/lib kopiert
4.) Die ganzen anderen Headerdateien in den Ordner Microsoft Visual Studio/Vc7/include kopiert
5.)die beiden Dlls in den Debug Ordner kopiert
6.) Erstellen probiert --> LinkerfehlerHab ich was vergessen ?
Was muss ich mit der DEF Datei machen die dabei liegt ?Vielen Dank
-
Ok, sieht so aus, als ob das jetzt funktioniert...
Allerdings kommt immer zurück, dass er nicht zur DB verbinden kann...
Wieso muss eigentlich immer alles schief gehen
-
Hab es mir angesehen. Du sollst nicht die Header in dein Projekt einbinden da die Header Anweisungen zum exportieren einer Klasse hat. Sonst versucht der Compiler diese Header zu kompilieren und da gibts errors.
Ein include der Header reicht. Die Lib muss gem. Header gefunden werden und die DLL muss vorhanden sein beim Programmstart.
Wenn du keinen COnnect bekommst dann musst du die Methode errormessage() beicase DB_CONNECTION_BAD:
hdatabase.errorMessage()aufrufen.
Diese liefert dir Infos warum es keinen Connect gibt. (MySQL nicht gestartet, falsches Passwort, etc)Ich stelle heute mal eine neue Version Online und auch gleich die neue Client-Bibliothek.
-
Ok, danke. Hab das jetzt alles so abgeändert wie du geschrieben hast. Das mit dem einbinden der Klasse funktioniert jetzt prima, nur leider hab ich immer noch keine Verbindung.
Die Errormessage ist bei mir leer, kann das sein ? Hab versucht die in einer MessageBox ausgeben zu lassen, da ist allerdings nie was drinnen. Oder muss ich die char* (Rückgabewert) vorher irgendwie konvertieren ? (Ui ich hab schon so lang nix mehr gemacht)
Oder kanns sein, dass das nicht funktioniert weil ich einen Router bei mir zu Hause stehen hab...da is übrigens gar nix konfiguriert in Sachen Virtual server oder so ?
-
Woher weiß du das du keine Verbindung hast
-
bool CFotoDlg::Connect(void) { CString s; if (m_databaseconnect.connected == false) { switch (m_databaseconnect.connect("http:db.web123.de","martin",3306,"martin","entfernt")) { case DB_CONNECTION_BAD: return false; break; case DB_CONNECTION_OK: break; } } return true; }
kommt immer false zurück
-
Ist ja klar. http ist ein Protokoll. MySQL verwendet tcp/ip.
Ein Browser macht es zwar auch nicht anders aber er schneidet http:// weg und macht dann eine DNS-Abfrage.Das HTTP sendet er dann nur im Header per TCP damit der Webserver weiß was gemeint ist und welcher Port.
mach mal eine Ping auf http://db.partynet.at. Du wist nichts zurückbekommen.
m_databaseconnect.connect("db.partynet.at","martin",3306,"martin","entfernt")
Oder die IPADRESSE
-
Danke, Danke, Danke
Jetzt haut's hin...
-
Hi,
Ich hab diesen Thread jetzt rauf und runter gelesen, aber irgendwie kriege ich es nicht hin die Klasse richtig einzubinden. Ich bekomme immer einen Error "nicht aufgelöstes externes Symbol sowieso in .... usw". Ich habe die Databaselib.h und die databaselibvc7.lib in meinem basis verzeichnis und das headerfile durch include eingebunden. Die Libdatei habe ich in den Projekteigenschaften auch eingebunden. Die beiden Dlls (databaselib und die mysql dll) sind beide in dem Release ordner.
Was mache ich noch falsch? (Benutze VC++ 7)
-
es bringt nichts wenn du die LIB in dein Projekt einbindest. Du musst sie linken. Weiters brauchst du auch die API von MYSQL welche aus den Headerdateien (mysql.h, und andere), libmysql.lib und libmysql.dll bestehtr. Diese bekommst du von www.mysql.de.
-
Also ich habe jetzt die mySQL Header files von deiner seite im Includeverzeichniss von VC, die mySQL.dll und databaselib.dll im Release verzeichniss, die Databaselib.h im Basisverzeichniss meines Programmes, ebenso wie die libmySQL.lib und die databaselib.lib . Allerding weiß ich nicht wirklich, was ich jetzt machen muss, um die lib datein zu linken bzw. wo ich sie eintragen muss.
Wenn du so freundlich wärst mir da nochmal zu helfen.
-
*auf antwort hoff* und *push*
-
Im Grunde nur meine Header einbinden. In dieser wird die mysql.h eingebunden welche wiederum einige andere einbinden.
Sonst brauchst du nichts zu machen.
Mein LIB wird duch meine Header gelinkt. Die Lib muss aber gefunden werden.
Solltest du unaufg. Sym habewn dann wird die lib nicht gefunden.
-
Dann scheint die Lib bei mir nicht gefunden zu werden.
TempDlg.obj : error LNK2019: Nicht aufgeloestes externes Symbol "__declspec(dllimport) public: int __thiscall CMYSQLDatabase::connect()" verwiesen in Funktion "protected: virtual int __thiscall CTempDlg::OnInitDialog(void)
Das ist der Fehler in gekürzter Form.
Ich scheine echt zu blöd dazu zu sein.
Ich hab mal mein Projekt hochgeladen. Es wäre sehr, sehr nett von dir, wenn du dir das mal anschauen könntest.
(Die MySQL header sind aus dem include ordner der mySQL Server 4.1 zib von der seite. Die LIb datei aus dem Liub/OPt ordner)
http://mitglied.lycos.de/Daishy/DL
dort die temp.zip (Lycos streikt beim direkt verlinken)
-
Hmm ich hab mir das mal ge-dl und soweit compiliert.
Aber mit meiner db kriegt er keine verbindung (hab mir das in den cases per AfxMessageBox ausgeben lassen)
...
case DB_CONNECTION_BAD:
AfxMessageBox("No");
return 0;Danach auch den Wrapper von U.T. mal testweise reingemacht. Das selbe Ergebnis
Woran kann es liegen, dass er damit keine Verbindung bekommt zumal es mit PHP wunderbar funktioniert?
Jemand eine Ahnung?
-
Kannst du mir bitte sagen, wo du welche libs, dlls, include etc hinkopiert hast und was du an den Projekteigenschaften/datein verändert hast, damit es funktioniert?
Wäre nett.
-
Welch Version von VC++ NET hast du. Die LIB ist für 7.1 compiliert.
-
Der Ordner heißt VC7 also gehe ich davon aus, das es 7.x ist.
-
OFFTOPIC:
@UnixTom: ist das dein Buch???
wenn ja habe ich es grade vorbestellt...
soll ja im November erscheinen....C ++ und mySQL
EAN: 9783826614606
Isbn: 3-8266-1460-7
-
Soll es werden. JA.