sqlite

1.头文件

#ifndef CSQLITE_H
#define CSQLITE_H

#include <QSqlDatabase>

class CSqlite
{
public:
    CSqlite();
    bool OpenDatabase(const QString& name,
                      const QString& user = "",
                      const QString& password = "");    // 打开数据库
    bool TableIsExist(const QString& table);    // 判断表是否存在
    bool ExecuteSql(const QString& sql);    // 执行sql语句
private:
    QSqlDatabase m_db;
};

#endif // CSQLITE_H

2.源文件

#include "csqlite.h"
#include <QSqlQuery>
#include <QVariant>

CSqlite::CSqlite()
{

}

bool CSqlite::OpenDatabase(const QString& name, const QString& user, const QString& password)
{
    m_db = QSqlDatabase::addDatabase("QSQLITE");
    m_db.setDatabaseName(name);
    m_db.setUserName(user);
    m_db.setPassword(password);
    if(!m_db.open()) {
        return false;
    }
    return true;
}

bool CSqlite::TableIsExist(const QString &table)
{
    if(!m_db.open()) {
        return false;
    }

    QSqlQuery query(m_db);
    QString sql = "select name from sqlite_master where type='table'";
    if(!query.exec(sql)) {
        return false;
    }
    while (query.next()) {
        if (query.value(0).toString() == table) {
            return true;
        }
    }
    return false;
}

bool CSqlite::ExecuteSql(const QString &sql)
{
    if(!m_db.open()) {
        return false;
    }
    QSqlQuery query(m_db);
    return query.exec(sql);
}

3.使用

 CSqlite sqlite;
    sqlite.OpenDatabase("test.db", "hh", "03");
    // 创建表
    QString sql = "create table test("
          "id varchar(32) not null primary key, "
          "name varchar(32) not null,"
          "status int default(2) not null)";
    sqlite.ExecuteSql(sql);
    // 更新表中记录
    sql = "update test set name='xiao',status=6 where id='03'";
    sqlite.ExecuteSql(sql);
    // 删除表中记录
    sql = "delete from test where id='03'";
    sqlite.ExecuteSql(sql);
    // 增加表中记录
    sql = "insert into test(id, name, status) values('08','xiao', 6)";
    sqlite.ExecuteSql(sql);
    // 查询表中记录
    sql = "select id, status from test";
    sqlite.ExecuteSql(sql);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • May you do good and not evil.May you find forgiveness for...
    includes阅读 2,189评论 0 1
  • 首先,我是很反感使用vc++6.0的,但是呢,我国的大学生计算机方面的基础教学是永远跟不上“潮流”的,考虑到接下来...
    kevin_captain阅读 1,829评论 0 2
  • 概念 1.SQLite是一个轻量级关系数据库,最初用于嵌入式系统,它占用资源非常少。在iOS中,只需加入libsq...
    Arthur澪阅读 1,552评论 0 0
  • SQLite是遵守ACID的关系数据库管理系统,它包含在一个相对小的C程序库中。与许多其它数据库管理系统不同,SQ...
    MiracleGl阅读 1,798评论 4 179
  • 上一篇文章我们学习了简单的sql语句iOS-数据库-SQL语句,这篇就学习一下在iOS中如何使用SQLite3进行...
    Imkata阅读 548评论 0 1