如何使用C++在sqlite3数据库中执行写文件功能

How to execute writefile function in sqlite3 database using C++

本文关键字:执行 文件 功能 数据库 何使用 C++ sqlite3      更新时间:2023-10-16

我正在尝试使用C++函数从sqlite3数据库中转储文件。 我已经在终端命令上尝试过这个,它工作得很好,但在这里它没有执行。

errmsg=:没有这样的功能:写文件

bool Database::download(string username, string filename){
string query = "SELECT USERNAME FROM FILES WHERE USERNAME='"+username+"';";
int rc = sqlite3_exec(dbFile,query.c_str(),private_callback,(void *)data,&errmsg);
if(rc==SQLITE_OK){
cout<<"this username dont have any uploaded files!"<<endl;
return false;
}
else{
query = "SELECT writefile('"+filename+"',FILE) FROM FILES WHERE USERNAME='"+username+"' AND FILENAME='"+filename+"';";
rc = sqlite3_exec(dbFile,query.c_str(),private_callback,(void *)data,&errmsg);
if(rc!=SQLITE_OK){
cout<<errmsg<<endl;
return false;
}
elsereturn true;
}
}

文档说:

请注意,readfile(X( 和 writefile(X,Y( 函数是扩展函数,未内置于核心 SQLite 库中。这些例程在 SQLite 源代码存储库的 ext/misc/fileio.c 源文件中作为可加载扩展提供。