回帖:一不小心跌到15页以后了。
今天又把这段代码拿出来添加了界面显示因素,把在这其中遇到的问题列出来,供大家参考。
-------------------
#include
#include
#include
#include
#include
#include
#include
int main(int argc, char *argv[])
{
QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
QApplication app(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
//创建不带名称的数据库连接,可以理解成ADO中的Connection
//参见QSqlDatabase的文档http://doc.trolltech.com/4.0/qsqldatabase.html#addDatabase
db.setDatabaseName("aaaa");
if ( !db.open())
{
QMessageBox::critical(NULL, QObject::tr("Collection"), QObject::tr("数据库连接失败!"));
return 0;
}
QSqlQueryModel * qModel = new QSqlQueryModel;
/*
qModel->setHeaderData(0, Qt::Horizontal, "ID");
qModel->setHeaderData(1, Qt::Horizontal, "Name");
这一段不知道做什么用的
*/
qModel->setQuery("select * from x");
//这里使用了默认的数据库连接
//同样参考QSqlQueryModel的文档
http://doc.trolltech.com/4.0/qsqlquerymodel.html#setQuery-2
//这个地方遇到几个问题:
//1.qModel->query().exec("select * from x"); Delphi代码写多了,习惯性写成一下样子
// qModel->query.exec("select * from x");
// 2.qModel->query().exec("select * from x"); 和
// qModel->setQuery("select * from x");
// 是有区别的,上面一句不能得到结果,下面一句可以。
QTableView tableView;
tableView.setModel(qModel);
tableView.show();
return app.exec();
}
===========
参考源代码链接如下:
http://caterpillar.onlyfun.net/Gossip/Qt4Gossip/QSqlQueryModelQSqlTableModel.html
代码只有自己写了才会知道什么地方有问题,会出问题。
下一步会尝试把图标写入数据库中。