自己整理一下,做个记录,方便以后查询。
由于直接访问文件型数据库太耗时,可以先将数据写入内存型数据库,然后定时同步到文件中。但是这样做有风险,如果遇到设备掉电,会存在丢数据情况。
#include <iostream>
#include <sqlite3.h>
#include <string>
#include <unistd.h>
using namespace std;
int main(void)
{
sqlite3* pDb = nullptr;
sqlite3* pFileDb = nullptr;
char* errmsg = nullptr;
// create memory database
if (SQLITE_OK != sqlite3_open(":memory:", &pDb))
{
cout << "Failed to open databse, error msg: " << sqlite3_errmsg(pDb) << endl;
sqlite3_close(pDb);
}
else
{
cout << "Open database successfully.\n";
}
// create file db
char dir[256] = {'\0'};
getcwd(dir, 256);
string curDir = dir;
string path = curDir + "/test.db";
if (SQLITE_OK != sqlite3_open(path.c_str(), &pFileDb))