Как выполнить функцию writefile в базе данных sqlite3 с помощью C ++ - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь вывести файл из базы данных sqlite3 с помощью функции C ++.Я пробовал это на терминальной команде, и она отлично работает, но здесь она не выполняется.

errmsg =: нет такой функции: writefile

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;
    }
}

1 Ответ

0 голосов
/ 12 июня 2018

Документация гласит:

Обратите внимание, что функции readfile (X) и writefile (X, Y) являются функциями расширения и не встроены в базовую библиотеку SQLite.Эти подпрограммы доступны как загружаемое расширение в исходном файле ext / misc / fileio.c в репозиториях исходного кода SQLite .

...