Qt QSqlQuery

索引サイト




#include "QtSql/qsqldatabase.h"
#include "QtSql/qsql.h"
#include "QtSql/qsqlerror.h"
#include "QtSql/qsqltablemodel.h"
#include "QtSql/qsqlquery.h"




void MainWindow::on_pushButton_clicked()
{
QTableWidgetItem *w_item_code;
QTableWidgetItem *w_item_name;
ui->tableWidget1->setColumnCount(2);

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("DSN=dsnEeePC;Driver={MySQL ODBC 3.51 Driver};");
db.setUserName("root");
db.setPassword("eeepc");
if (!db.open())
{
QMessageBox::critical(this, "Connect Error", db.lastError().text());
} else {
QMessageBox w_msgBox(this);
w_msgBox.setText("connect");
w_msgBox.exec();
//***************************************
// table表示
//***************************************
QString w_sql = "select * from tb_eeepc";
QSqlQuery w_query(db);
w_query.exec(w_sql);
ui->tableWidget1->setRowCount(20);
int w_idx = 0;
while(w_query.next())
{
QString w_code = w_query.value(0).toString();
QString w_name = w_query.value(1).toString();

w_item_code=new QTableWidgetItem;
w_item_name=new QTableWidgetItem;
ui->tableWidget1->setItem(w_idx,0,w_item_code);
ui->tableWidget1->setItem(w_idx,1,w_item_name);

ui->tableWidget1->item(w_idx,0)->setText(w_code);
ui->tableWidget1->item(w_idx,1)->setText(w_name);
w_idx ++;
}
}
db.close();
QMessageBox w_msgBox(this);
w_msgBox.setText("display-end");
w_msgBox.exec();
//*******************************************
// tableview
//*******************************************
QSqlTableModel *w_tblModel = new QSqlTableModel;
w_tblModel->setTable("tb_eeepc");

QTableView* w_tblView = new QTableView;
w_tblView->setModel(w_tblModel);
w_tblView->show();

w_tblModel->select();
}

意外と%定義を忘れがち。接続不能であちこち調べて結局追加するのを忘れていたとの「おち」が時々・・




AX