2011-08-06 4 views
3

Qtで構築しているプログラムを接続する際にいくつかの問題があります。そしてそれをやれば、データベースをテーブルウィジェットで動作させるにはどうしたらいいですか?Mysqlとqtを接続していますか?

私はおそらく、私がlibreofficeベースでデータベースを作った以外にどこから始めなければならないかを知らせるべきです。

+0

あなたは私たちに多くの情報を提供しているわけではありません。しかし、MySQLにQtを接続する方法を探しているなら、心配する必要はありません。これは既に[QSqlDatabase](http://doc.qt.nokia.com/latest/qsqldatabase.html)によって処理されています。 – Bart

答えて

1

Qtのヘルプシステムでは、例を見て、SQLに行って、テーブルモデルの例を選んでください。 QtでMySQLを使用するのは難しくありません。 (qtmysqlドライバを手作業でコンパイルしなければならないかもしれません;私のシステムでは/QtSources/4.7.3/src/plugins/sqldrivers/mysql/mysql.proにあります。qmake/make/make installを実行してください。

3

Qtは、テーブル、木、またはリスト内のデータを提示するための非常に柔軟なツールであるモデル/ビューフレームワークを提供します。あなたが使用する必要があるモデルがQSqlTableModelあるので。

まずQSqlDatabaseインスタンスを作成し、に接続しますデータベース

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); 
db.setHostName("localhost"); 
db.setDatabaseName("my_database"); 
db.setUserName("username"); 
db.setPassword("password"); 
if(!db.open()) 
    QMessageBox::warning(this,"Error","Unable to connect to the database"); 

は、モデルを作成

QSqlTableModel *model = new QSqlTableModel(parent,db); 
model->setTable("students"); 
model->select(); //< fetch data 

、最終的にこのモデルから

QTableView *table = new QTableView; 
table->setModel(model); 
0
  1. .PRO
  2. ダウンロードlibmysq.dllにQT + =コアSQLを追加し、Qt-に追加> Qtの5.3.0をデータをdiplayするテーブルを伝えます - > mingw482_32 - >プラグイン - > sqldrivers
  3. 新しいQtのコンソールファイルを作成
をMAIN.CPPするために、この行を追加します。

int main(int argc, char *argv[]) 
{ 
QCoreApplication a(argc, argv); 


QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); 
db.setHostName("localhost"); 
db.setUserName("root"); 
db.setPassword(""); 
db.setDatabaseName("sim"); 

if(db.open()) 
{ 
    qDebug() << "connected " << db.hostName(); 
}else{ 
qDebug() << "Connection FAILED."; 

} 
return a.exec(); 
} 
関連する問題