主题 : QSplite数据库程序问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 58789
精华: 0
发帖: 27
金钱: 140 两
威望: 28 点
综合积分: 54 分
注册时间: 2011-11-14
最后登录: 2017-09-13
楼主  发表于: 2012-07-30 11:30

 QSplite数据库程序问题

用友善提供的rootfs_qtopia_qt4文件系统 写了个QSplite数据库程序:

#include <QApplication>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlDriver>
#include <QSqlRecord>
#include <QSqlField>
#include <QDebug>
#include <QVariant>
#include <QStringList>
#include <QMessageBox>


static bool createConnection()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE","c1");
    db.setDatabaseName("my1.db");
    if(!db.open())
    {
        QMessageBox::critical(0, "can't open database", "unable to connect", QMessageBox::Cancel);
        return false;
    }

    QSqlQuery query(db);
  
   qDebug<<"create table :";
    query.exec("create table student (id int primary key, "
             "name varchar(20))");
    query.exec("insert into student values(0, 'LiMing')");
    query.exec("insert into student values(1, 'LiuTao')");
    query.exec("insert into student values(2, 'WangHong')");

     return 1;
}

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

    QApplication a(argc,argv);
    qDebug()<<"DRIVER:";
    QStringList drivers = QSqlDatabase::drivers();
    foreach(QString driver ,drivers)
        qDebug()<<driver;

    if(!createConnection())return 1;

    QSqlDatabase db = QSqlDatabase::database("c1");
    QSqlQuery query(db);

    query.exec("select * from student");
    while(query.next())
    {
        qDebug() << query.value(0).toInt() << query.value(1).toString();
    }
}

执行后打印
DRIVER:
"QSQLITE"
create table

无法读取表内容,不知为何?