[qt] Brak sterownika QMYSQL

Potrzebujesz pomocy z C, C++, perl, python, itp.
Atom
Posty: 28
Rejestracja: 18 marca 2009, 22:57

[qt] Brak sterownika QMYSQL

Post autor: Atom »

Witam
Chciałem zbudować program bazodanowy który będzie wykorzystywał MYSQL. Niestety napotkałem na problem. Nie mogę prawidłowo załadować sterownika QMYSQL. Przeglądnąłem już wiele stron. Doinstalowałem odpowiednie pakiety, do katalogu dorzuciłem pliki z sterownikiem jak na niektórych stronach radzili i ciągle dostaje taki komunikat:

Kod: Zaznacz cały

 
[color=#aa0000][font=Monospace]QSqlDatabase: QMYSQL driver not loaded[/font][/color]
[color=#aa0000][font=Monospace]QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QPSQL QPSQL7[/font][/color]
[color=#aa0000][font=Monospace]QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins[/font][/color]
[color=#aa0000][font=Monospace]Gtk-Message: Failed to load module "canberra-gtk-module"[/font][/color]

Proszę o pomoc w rozwiązaniu problemu.
Awatar użytkownika
Yampress
Administrator
Posty: 6400
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Post autor: Yampress »

Ale piszemy wszystko na czarno, bez kolorowania składni
Atom
Posty: 28
Rejestracja: 18 marca 2009, 22:57

Post autor: Atom »

Wybacz kopiowałem z programu i nie zauważyłem. Ale wciąż szukam odpowiedzi :(
mariaczi
Member
Posty: 1343
Rejestracja: 08 lutego 2008, 12:58
Lokalizacja: localhost@śląskie

Post autor: mariaczi »

Z komunikatu, który pokazujesz wynika, że driver jest dostępny lecz nie został załadowany. Wymagana jest instancja QCoreApplication aby móc ten plugin załadować. Prawdopodobnie brakuje Ci czegoś w kodzie.
Atom
Posty: 28
Rejestracja: 18 marca 2009, 22:57

Post autor: Atom »

Sterownik do MySql ładuję zgodnie z tutorialem QT

Kod: Zaznacz cały

QSqlDatabase db= QSqlDatabase::addDatabase("QMYSQL");

         db.setHostName("....");
         db.setDatabaseName("....");
         db.setUserName(".......");
         db.setPassword("......");
         if (!db.open())
         {
           QMessageBox::critical(0, QObject::tr("Database Error"),
                     db.lastError().text());
          
         }
mariaczi
Member
Posty: 1343
Rejestracja: 08 lutego 2008, 12:58
Lokalizacja: localhost@śląskie

Post autor: mariaczi »

Zajrzyj w ten tutorial https://www.youtube.com/watch?v=0tNqgAMCywM - może Cię naprowadzi mimo że troszkę już starawy.
Atom
Posty: 28
Rejestracja: 18 marca 2009, 22:57

Post autor: Atom »

No niestety nic ten filmik nie wniósł. Twórca filmu dosłownie tak samo łączy się z bazą danych jak na tylko różnica jest taka że u niego te połączenie działa a u mnie nie.
Atom
Posty: 28
Rejestracja: 18 marca 2009, 22:57

Post autor: Atom »

Znalazłem rozwiązanie tego problemu. Lecz teraz jaką bibliotekę dograć by to w ten sposób skompilować

https://www.youtube.com/watch?v=r1TbNjJSlX8
mariaczi
Member
Posty: 1343
Rejestracja: 08 lutego 2008, 12:58
Lokalizacja: localhost@śląskie

Post autor: mariaczi »

Program piszesz w środowisku linux czy windows? W linux biblioteki mają rozszerzenie ".so" zatem prawdopodobnie będzie to libmysql.so. Gdzie, w jakim pakiecie może być ta biblioteka znajdziesz na https://www.debian.org/distrib/packages#search_contents
ODPOWIEDZ