Skocz do zawartości

[Qt] Dodanie Bibliotek Mysql


Heos

Rekomendowane odpowiedzi

A więc tak:

Mam zamysł napisać program w QT, który będzie miał za zadanie głównie łączyć się z bazą danych MySQL, pobierać o modyfikować dane w niej zawarte.

 

Jednak na starcie rodzi się problem, w jaki sposób połączyć się z MySQL i jak dodać do QT odpowiednie biblioteki? Zwykłe #include mysql.h oczywiście nie działa.

 

Prosiłbym aby tłumaczyć mi to krok po kroku jak głupiemu, gdyż z C++, QT ledwo co zaczynam przygodę. Przyzwyczajony jestem do NetBeansa, który wiele więcej podpowiadał.

Odnośnik do komentarza
Udostępnij na innych stronach

Witam,

Najlepiej otworzyc QtAssistant i poczytac o QtSql

Notabene nie trzeba inkludowac zadnych bibliotek zewnetrznych wszystko realizujesz przez drivery dostarczone w Qt.

Mozna oczywiscie korzystac z zewnetrznych rzeczy ale na poczatku tak jest najprosciej.

Dobrze tez w 'Qt Examples and Demos' przegladnac sobie przyklady SQL.

 

[edit]

Jesli masz przyzwyczajenia z javy to w uzywa sie tego podobnie jak jdbc.

A i jak masz przyzwyczajenia z NetBeansa to warto sobie skonfigurowac eclipse z pluginem do Qt.

[/edit]

pz

B.Klimas

Odnośnik do komentarza
Udostępnij na innych stronach

Fajnie, fajnie ale ja prosiłem aby mi to rzeczowo i najlepiej na przykładzie wyłożyć. Jak, jakie biblioteki załączyć, jak się połączyć z baza i chociaż jedno przykładowe zapytanie. Resztę już opanuję.

 

W Asstistant'cie nic nie mogłem znaleźć o łączeniu z serwerem MySQL.

Odnośnik do komentarza
Udostępnij na innych stronach

Wg podanego poradnika:

 

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "Qt/QtSql"

MainWindow::MainWindow(QWidget *parent) :
   QMainWindow(parent),
   ui(new Ui::MainWindow)
{
   ui->setupUi(this);    
}


MainWindow::~MainWindow()
{
   delete ui;
}


void MainWindow::on_pushButton_10_clicked()
{
   QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL");
   db.setHostName("host");
   db.setDatabaseName("baza");
   db.setPort(3306);
   db.setUserName("user9");
   db.setPassword("haslo");
   db.open();

        if (db.lastError().isValid())
            qDebug() << db.lastError().driverText();

}

 

Działa, jednak przy połączeniu pokazuje:

"QPSQL: Unable to connect"

Odnośnik do komentarza
Udostępnij na innych stronach

... ja umie czytac i to ze zrozumieniem, wedlug mnie

QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL"); To PostgreSQL

 

Wiec prosze przeczytaj kawalek chociaz dokumentacji która polecil Ci morsik:

 

Driver Type Description

...

QMYSQL MySQL Driver

...

QPSQL PostgreSQL Driver

...

 

pz

B.KLimas

Odnośnik do komentarza
Udostępnij na innych stronach

Hm, faktycznie - mój błąd.

Po zmianie:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QPSQL7 QPSQL
"Driver not loaded"

Jak wnioskuję jednak brakuje jednak sterowników do MYSQL

Odnośnik do komentarza
Udostępnij na innych stronach

[root@fedora ~]# yum install qt-mysql.x86_64
Wczytane wtyczki: presto, refresh-packagekit
Ustawianie procesu instalacji
Pakiet 1:qt-mysql-4.6.3-8.fc13.x86_64 jest już zainstalowany w najnowszej wersji
Nie ma niczego do zrobienia

Odnośnik do komentarza
Udostępnij na innych stronach

Cóż, te ichnie sposoby nie działając więc uśmiechnąłbym się jeszcze raz o pomoc, czemu mimo:

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

Pokazuje błąd:

QSqlDatabase: QMYSQL driver not loaded

Odnośnik do komentarza
Udostępnij na innych stronach

Rozumie że tak jak pisali na tamtym forum masz driver w katalogu (lub innym adekwatnym)

/usr/lib64/qt4/plugins/sqldrivers/libqsqlmysql.so

 

pz

B.KLimas

Odnośnik do komentarza
Udostępnij na innych stronach

Tak, jest. Przed chwila raz jeszcze sprawdzilem.

 

Nie wiem czy to to i czemu tak bylo, ale pomoglo -> nie mialem uprawnien (jako zwykly uzytkownik) do odczytywania pliku biblioteki, teraz juz jest ok. Dzieki za pomoc ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...