加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

QT操作Sqlite数据库

发布时间:2020-12-12 20:17:45 所属栏目:百科 来源:网络整理
导读:#include QtCore/QCoreApplication#include QtCore#include QApplication#include QTextCodec#include QSqlDatabase#include QMessageBox#include QSqlQuery#include QTime#include QSqlError#include QtDebug#include QSqlDriver#include QSqlRecord#includ
#include <QtCore/QCoreApplication>
#include <QtCore>
#include <QApplication>
#include <QTextCodec>
#include <QSqlDatabase>
#include <QMessageBox>
#include <QSqlQuery>
#include <QTime>
#include <QSqlError>
#include <QtDebug>
#include <QSqlDriver>
#include <QSqlRecord>
#include <stdio.h>


int main(int argc,char *argv[])
{
    QCoreApplication a(argc,argv);
    QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
    QSqlDatabase db=QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("test.db");
    if(!db.open())
    {
        QMessageBox::critical(0,QObject::tr("无法打开数据库,请检查驱动"),QObject::tr("出错了"),QMessageBox::Ok);
        return -1;
    }
    QSqlQuery query;
    query.exec("drop table if  exists mobile");

    bool success=query.exec("create table mobile"
                            "(id int primary key,"
                            "attribute varchar,"
                            "type varchar,"
                            "kind varchar,"
                            "nation int,"
                            "carnumber int,"
                            "elevaltor int,"
                            "distance int,"
                            "oil int,"
                            "temperature int)");
    if(success)
    {
        qDebug()<<QObject::tr("数据库表创建成功!");
    }else{
        qDebug()<<QObject::tr("数据库表创建失败!");
    }
    QTime time;
    time.start();
    query.prepare("insert into mobile values (?,?,?)");
    long records=100;
    for(int i=0;i<records;i++)
    {
        query.bindValue(0,i);
        query.bindValue(1,"呵呵");
        query.bindValue(2,"你好");
        query.bindValue(3,"富士康");
        query.bindValue(4,rand()%100);
        query.bindValue(5,rand()%10000);
        query.bindValue(6,rand()%300);
        query.bindValue(7,rand()%200000);
        query.bindValue(8,rand()%52);
        query.bindValue(9,rand()%100);
        success=query.exec();
        if(!success)
        {
            QSqlError lastError=query.lastError();
            qDebug()<<lastError.driverText()<<QObject::tr("插入失败");

        }

    }
    qDebug()<<QObject::tr("插入 %1 条记录,耗时: %2 ms").arg(records).arg(time.elapsed());
    //排序
    time.restart();
    success=query.exec("select * from mobile order by id desc ");
    if(success)
    {
        qDebug()<<QObject::tr("排序: %1 条记录,耗时: %2 ms").arg(records).arg(time.elapsed());
        
    }else{
        qDebug()<<QObject::tr("排序失败!");
    }
    time.restart();
    for(int i=0;i<records;i++)
    {
        query.clear();
        query.prepare(QString("update mobile set attribute=?,type=?,"
                              "kind=?,nation=?,"
                              "carnumber=?,elevaltor=?,"
                              "distance=?,oil=?,"
                              "temperature=? where id=%1").arg(i));
        query.bindValue(0,"四轮");
        query.bindValue(1,"轿车");
        query.bindValue(2,"富康");
        query.bindValue(3,rand()%100);
        query.bindValue(4,rand()%10000);
        query.bindValue(5,rand()%300);
        query.bindValue(6,rand()%200000);
        query.bindValue(7,rand()%52);
        query.bindValue(8,rand()%100);
        success=query.exec();
        if(!success)
        {
            QSqlError lastError=query.lastError();
            qDebug()<<lastError.driverText()<<QString(QObject::tr("更新失败"));
        }

    }
    qDebug()<<QObject::tr("更新 %1 条记录,耗时:%2 ms").arg(records).arg(time.elapsed());

    time.restart();
    query.exec("delete from mobile where id=88");
    qDebug()<<QObject::tr("删除一条数据,耗时:%1 ms").arg(time.elapsed());
    getchar();
    return a.exec();
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读