1

データベース テーブルで呼び出されたフィールドを更新する関数を作成しfsizeましたが、関数が機能しません。どうしてか分かりません。sqlite のエラー コードをデバッグした0ので、何が問題なのかわかりません。

void update_fsize(int asizex, char path[], int sizex) {
    char *q;
    q="UPDATE search SET ustat=0,fsize=? WHERE fpath=?";
    if (sqlite3_prepare_v2(db, q, strlen(q), &pointer, 0) == SQLITE_OK) {
        sqlite3_bind_int(pointer, 1, asizex);   
        sqlite3_bind_text(pointer, 2, path, strlen(path), 0); // file path
        sqlite3_step(pointer);   // prepare statemnt Ready
        sqlite3_finalize(pointer);   
    }
    int ecode = sqlite3_errcode(db);
    cout << "\n error code is " << ecode;
    cout << "\n\n\n Path: " << path << "\n actual size: " << asizex << "\n Recored size: " << sizex;
}
4

1 に答える 1

0

特に@WhozCraigを助けてくれてありがとう:)

私は解決策を投稿するかもしれませんが、他の人はそれが有用な疑似コードだと思うかもしれません:

function 1(){
// getting data from database 
data if == to this 
then 
sqlite3_reset(pointer);  // reset pointer 
call db_updater();

db_updater(){
updating database using update query 
}

そのため、別の関数にジャンプする前にポインターをリセットします

于 2013-01-18T02:15:06.057 に答える