欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

qt 下数据库文件和tablemodel怎么链接起来的

更新时间: 2014-01-05 02:44:13 责任编辑: Author_N1

 

Qt 下数据库文件和tableModel如何链接起来的
代码:
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE"); // 建立数据库驱动
    db.setDatabaseName("db");  // 打开数据库文件 db
    if(!db.open())  // 如果打开失败,提示消息对话框
    {
        QMessageBox::critical(0, tr("Cannot open database"),
            tr("Unable to establish a database connection.\n"
               "This example needs SQLite support. Please read "
               "the Qt SQL driver documentation for information how "
               "to build it."), QMessageBox::Cancel);
        return;
    }

    db.close(); // 关闭数据库

    QSqlTableModel *model; // 建立一个TableModel类
        model = new QSqlTableModel();

    QStringList list = model->database().tables(); // 得到db数据库文件中"表"
    qDebug() << list.size(); // 显示所存在的"表"的个数
    for (int i = 0; i < list.size(); ++i) // 敬爱那个所有的"表"名称显示出来
        qDebug() << list.at(i).toLocal8Bit().constData() << endl;

    model->setTable("person"); // 选定一个"表"

    model->select(); // 


问题:
    我关闭了数据库文件(db.close())后,才新建了QSqlTableModel类,为什么通过
model->database().tables()可以取得该数据库文件中所有的"表"名?QSqlTableModel类是如何和数据库文件链接起来的?
--参考方法--
这是因为QSqlTableModel构造中有个默认参数QSqlDatabase(),这个是全局默认的缺省数据库,就算你关闭了,会自动open()的。


--参考方法--
http://blog.csdn.net/rabinsong/article/details/8452946, 看看这篇文章,重载data,将QTreeView,改为QTableView
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:44:13
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/13763/
本文WWW.DOC100.NET DOC100.NET版权所有。