注:备份操作后,目标数据库与源数据库完全一样。
sqlite3 *pDBSource = NULL;
sqlite3 *pDBDest = NULL;
sqlite3_backup *bak;
int nRet;
nRet = sqlite3_open(strSourceDBAddr.data(), &pDBSource); //源数据库
nRet = sqlite3_open(strDestDBAddr.data(), &pDBDest); //目标数据库
if (nRet != SQLITE_OK)
{
return bFlag;
}
bak = sqlite3_backup_init(pDBDest, "main", pDBSource, "main"); //特别注意,源数据库名和目的数据库名都是固定的字符串“main”
if (bak)
{
sqlite3_backup_step(bak, -1);
sqlite3_backup_finish(bak);
bFlag = true;
}
const char* szError;
szError = sqlite3_errmsg(pDBDest); //错误信息查看
BSLog::writeMessage(szError);
sqlite3_close(pDBSource);
sqlite3_close(pDBDest);