网站开发公司会在最后面加上公司,自己制作的网站,怎么设置wordpress页面,重庆沙坪坝天星桥发生斗殴文章目录 SQLite3 C/CAPI介绍SQLite3 C/C API 使⽤ SQLite3 C/CAPI介绍 C/C API是SQLite3数据库的⼀个客⼾端#xff0c;提供⼀种⽤C/C操作数据库的⽅法。 SQLite3 C/C API 使⽤ 下⾯我们将这⼏个接⼝封装成⼀个类#xff0c;快速上⼿这⼏个接口 创建/打开数据库文件针对打开… 文章目录 SQLite3 C/CAPI介绍SQLite3 C/C API 使⽤ SQLite3 C/CAPI介绍 C/C API是SQLite3数据库的⼀个客⼾端提供⼀种⽤C/C操作数据库的⽅法。 SQLite3 C/C API 使⽤ 下⾯我们将这⼏个接⼝封装成⼀个类快速上⼿这⼏个接口 创建/打开数据库文件针对打开的数据库执行操作 1. 表的操作 2. 数据的操作关闭数据库
#include iostream
#include string
#include sqlite3.h
using namespace std;class SqliteHelper
{
public:typedef int(*SqliteCallback)(void*,int,char**,char**); //回调函数指针SqliteHelper(const string dbfile) : _dbfile(dbfile), _handler(nullptr){}bool open(int safe_leve SQLITE_OPEN_FULLMUTEX) //串行化模式{//int sqlite3_open_v2(const char *filename, sqlite3 **ppDb, int flags, const char *zVfs );int ret sqlite3_open_v2(_dbfile.c_str(), _handler, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | safe_leve, nullptr);if (ret ! SQLITE_OK) {cout 创建/打开sqlite数据库失败: ;cout sqlite3_errmsg(_handler) endl;return false;}return true;}bool exec(const string sql, SqliteCallback cb, void *arg) //arg是cb回调函数的参数{//int sqlite3_exec(sqlite3*, char *sql, int (*callback)(void*,int,char**,char**), void* arg, char **err)int ret sqlite3_exec(_handler, sql.c_str(), cb, arg, nullptr);if (ret ! SQLITE_OK) {cout sql endl;cout 执行语句失败: ;cout sqlite3_errmsg(_handler) endl;return false;}return true;}void close() {//int sqlite3_close_v2(sqlite3*);if (_handler) sqlite3_close_v2(_handler);}
private:string _dbfile;sqlite3 *_handler;
};