Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29930572
  • 博文数量: 230
  • 博客积分: 2868
  • 博客等级: 少校
  • 技术积分: 2223
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-08 21:48
个人简介

Live & Learn

文章分类

全部博文(230)

文章存档

2022年(2)

2019年(5)

2018年(15)

2017年(42)

2016年(24)

2015年(13)

2014年(1)

2012年(5)

2011年(58)

2010年(56)

2009年(9)

我的朋友

分类: 数据库开发技术

2010-09-13 17:55:20

#include
#include
#include
#include
#include
#include
#include
#include
#include


int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QTextEdit display;
    display.resize(300, 160);
    display.show();  //下面进行数据库的设置
   // QSqlDatabase *db = QSqlDatabase::addDatabase("QSQLITE");  //使用sqlite数据库驱动
    QSqlDatabase db = QSqlDatabase::addDatabase( "QSQLITE" );

    //db.addDatabase("QSQLITE");
    db.setDatabaseName("test");  //我们之前建立的数据库
    bool ok = db.open();  //尝试连接数据库
    if (ok)
    {  //这里用text已经成功连上数据库
        QSqlQuery query;  //新建一个查询的实例
       if (query.exec("select * from student"))   //尝试列出 student 表的所有记录
        {  //本次查询成功
            int numRows = 0;  //询问数据库驱动,是否驱动含有某种特性
            if (db.driver()->hasFeature(QSqlDriver::QuerySize))
            {
                numRows = query.size();  //如果支持结果影响的行数,那么直接记录下来
            }
            else
            {
                query.last(); //否则定位到结果最后,qt 文档说,这个方法非常慢
                numRows = query.at() + 1;
                query.seek(-1);
            }
            QString name, age;
            display.append("===========================================");
            while(query.next())
            {  //定位结果到下一条记录
                name = query.value(0).toString();
                age = query.value(1).toString();
                QString result = name + " " + age;
                display.append(result);
            }
            display.append("===========================================");
            display.append(QString("totally %1 rows").arg(numRows) );
        }
        else
        {  //打开数据库失败,显示数据库返回的失败描述
        display.append("cannot open database.");
        display.append("Reason: " + db.lastError().databaseText());
    }
   QApplication::connect(&app, SIGNAL(lastWindowClose()), &app, SLOT(quit()));
    return app.exec();
}

编译出错:
undefined reference to `QSqlDatabase::defaultConnection'
解决办法:
第一种办法:
.pro里面加一句
QT+=sql
第二种办法:
INCLUDEPATH += /usr/local/Trolltech/QtEmbedded-4.6.3/include/QtSql
LIBS += -lQtSql
阅读(2125) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~