0

最大 3 つの文字列の C++ コンテナーがあり、多くの場合、文字列は 1 つだけです。

コンテナー内の文字列ごとに sqlite dB から 1 つの int 値を取得する必要がありますが、準備されたステートメントよりも高速な方法があるかどうか疑問に思っていました。

私が今持っている方法

int Idx{}; // set to 0
std::for_each(container.begin(), container.end(), [](string& item) {
    sqlite3_prepared_v2( 
        db, 
        ("SELECT categoryId FROM table WHERE item='" + item + "'").c_str(), 
        -1, 
        &stmt, 
        NULL 
    );
    sqlite3_step(stmt); // goto the first result
    Idx += sqlite3_column_int(stmt, 0); // add to my Idx
    sqlite3_finalize(stmt); // finalize
};
4

0 に答える 0