MySQL, Qt 4.7 i Windows 7...

0

Witam, już pół dnia męczę się z tym, abym mógł korzystać z bazy danych MySQL w swojej aplikacji, jednak ciągle dostaję takie info debuggera:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE

Poszperałem trochę w google i znalazłem ten poradnik: http://www.qtcentre.org/wiki/index.php?title=Building_the_QMYSQL_plugin_on_Windows_using_mingw jednak utknąłem już praktycznie na samym początku, w instrukcji

Open a Qt Command Prompt and go to wherever you installed the MySQL server (C:\Program Files\MySQL\MySQL Server 5.0 is the default location).

Niestety u siebie nigdzie nie widzę niczego w rodzaju Qt Command Prompt. Co robić?

0

E jak nie ma?Start->Programy-><twój folder z Qt,pewnie Qt v4.7.0>->i jak byk stoi skrót Qt X.X.X Command Prompt

0

Nie ma. Mógłbyś podać ścieżkę do pliku?

1

Hm dziwne,ja mam w tym prompcie takie coś:
%COMSPEC% /k "C:\Qt4.5.0\bin\qtvars.bat vsvars"

Więc imo odpal zwykłego prompta windowsa,potem odpal qtvars.bata z parametrem vsvars i nie ma siły,żeby nie poszło

Hmmm wiem co może jeszcze być nie tak-masz kuteka ze źródeł które nie przekompilowałeś i stąd nie zrobił ci skróta z linią poleceń Qt.Był qmake -project qmake nmake w robocie?

0

Niestety nadal nic. QT instalowałem za pomocą instalatora online.
Wywołałem w wierszu poleceń D:\QtSDK\Desktop\Qt\4.7.3\mingw\bin\qmake.exe -project gmake nmake i niestety dalej tego bata nie ma.
W Starcie folderu QT w ogóle nie mam, już nie pamiętam czy przy instalacji ustawiłem, żeby skrótów w starcie nie tworzyło czy sam potem to usunąłem.

0

Hmmm weź zassij sobie jaką porządną wersję tego Qt:
http://qt.nokia.com/downloads/windows-cpp-vs2008
bo to co mówisz to jakieś czary są.
Ewentualnie wersję Qt+IDE:
http://qt.nokia.com/downloads/sdk-windows-cpp-offline

0

@tomepaw
tak trochę nie temat napiszę, ale jeśli już będziesz miał dość to mogę Cię zapewnić, że pod VS zadziała to dobrze i szybko sobie poradzisz z instalacją driver'a ;D

0

Już mam dość :P
Jednak dziwi mnie to, że nawet jak próbuję się połączyć z bazą danych SQLite (zewnętrzny serwer) to firewall nie woła o tym, że program chce łączyć się z internetem.
Oczywiście QSqlDatabase ma ustawione HostName na adres hosta bazy danych jak również użytkownika, hasło itd. Znowu coś źle robię?

0

A jest coś takiego jak serwer SQLite ?
Jak dla mnie to zwykły plik i wystarczy że użytkownik ma dostęp do danego zasobu sieciowego.

0

Serwer to po prostu cba.pl i chciałbym, aby program łączył się z tą bazą danych i wykonywał konkretne polecenia na tej bazie (pobieranie danych, uaktualnianie). Czy QT umożliwia coś takiego?

1

QSqlQuery,QSql(Relational)TableModel to są klasy,które zapewne Cię zainteresują

0

Ehh po kilku dniach walki dalej nie udało mi się dodać sterownika MySQL, poddaje się. Dziękuję za pomoc.

0

W końcu zabrałem się do reinstalacji Qt. Niestety dalej mam problemy, z którymi nie potrafię sobie poradzić. Robię wszystko zgodnie z punktami podanymi w poście: http://4programmers.net/Forum/C_i_C++/175606-qt_+_mysql?p=721910#id721910 Problemy zaczynają się w punkcie 11.
Wywołuję komendę qmake -o Makefile "INCLUDEPATH+='D:/Program Files (x86)/MySQL/MySQL Connector C++ 1.1.0/include'" "LIBS+=%QTDIR%/plugins/sqldrivers/mysql/libmysqlcppconn.a" mysql.pro
I dostaję błąd Cannot find file: mysql.pro.
To więc w ruch idzie qmake -project, który tworzy plik mysql.pro. I drugi raz zapodaję komendę qmake -o Makefile(...) i dostaję plik Makefile. Więc teraz uruchamiam mingw32-make i dostaję komunikat mingw32-make: Nothing to be done for first'.` Trochę go obszedłem tworząc po prostu pusty plik tekstowy i nadając mu nazwę mysql.pro i znowu qmake -o Makefile(...) i tym razem tworzy foldery Debug i Release, oraz pliki Makefile, Makefile.Debug i Makefile.Release. Po tym uruchamiam mingw32-make i o to co dostaję

mingw32-make -f Makefile.Debug
mingw32-make[1]: Entering directory `D:/QtSDK/Desktop/Qt/4.7.4/mingw/plugins/sql
drivers/mysql'
g++ -mthreads -Wl,-subsystem,windows -o debug\mysql.exe   -L"d:\QtSDK\Desktop\Qt
\4.7.4\mingw\lib" -lmingw32 -lqtmaind D:\QtSDK\Desktop\Qt\4.7.4\mingw\src\plugin
s\sqldrivers\mysql\libmysqlcppconn.a -lQtGuid4 -lQtCored4 -LC:\OpenSSL-Win32_ful
l\lib
d:\QtSDK\Desktop\Qt\4.7.4\mingw\lib/libqtmaind.a(qtmain_win.o): In function `Win
Main@16':
c:/ndk_buildrepos/qt-desktop/src/winmain/qtmain_win.cpp:131: undefined reference
 to `qMain(int, char**)'
collect2: ld returned 1 exit status
mingw32-make[1]: *** [debug\mysql.exe] Error 1
mingw32-make[1]: Leaving directory `D:/QtSDK/Desktop/Qt/4.7.4/mingw/plugins/sqld
rivers/mysql'
mingw32-make: *** [debug] Error 2
0

Zainstaluj sobie Linuxa na virtualnej maszynie i na tym pisz softa. Darmowa wersja Qt nie instaluje sterownikow MySQL pod Win (cos z licencjami), pod Linuxem tak. A budowanie Qt ze zrodel tylko w teorii wyglada tak latwo. Oczywiscie i tak na koniec bedziesz musial przekompilowac swoje dzielo pod windowsem ;)

0

Jednak to jest ominięcie problemu, tym razem chce go w końcu rozwiązać. Wydaje mi się, że problem leży w pliku mysql.pro. Czy on nie powienien się sam utworzyć lub po prostu powinienem wcześniej z jakiegoś miejsca go wziąć?

QSqlDatabase: available drivers: QSQLITE QMYSQL3 QMYSQL QPSQL7 QPSQL
Wystarczy robić dokładnie tak jak jest opisane tu: http://www.pikopong.com/blog/2011/07/11/how-to-enable-mysql-support-in-qt-sdk-for-windows-part-2/
Ja zamiast MySQL Server (ten o wadze ~150MB) użyłem MySQL C++ Connector i przez to nie mogłem zbudować MySQLa. A chciałem zaoszczędzić czasu ściągając mniejszy plik...

1 użytkowników online, w tym zalogowanych: 0, gości: 1