0

フラグを付けてHamsterDBデータベースに値を挿入したHAM_OVERWRITE場合、キーがまだ存在しない場合の影響は何ですか?

私は自分のプログラムで最大のシリアル番号を追跡し、それをHamsterDBデータベースに保持しています。

if (serial > high_serial_) {
    high_serial_ = serial;
    ham::key key((void*)HIGH_SERIAL_KEY, strlen(HIGH_SERIAL_KEY));
    ham::record record((void*)&high_serial_, sizeof(high_serial_));

    db.insert(&key, &record, HAM_OVERWRITE);
}

アプリケーションを再起動するhigh_serial_と、DBに保存されている現在の値で初期化されます。

ham::key key((void*)HIGH_SERIAL_KEY, strlen(HIGH_SERIAL_KEY));
auto record = roll_file_db.find(&key);

しかし、この呼び出しはスローしてHAM_KEY_NOT_FOUNDいます。ドキュメントには、キーがまだ存在しない場合は単に挿入されると記載されています。しかし、これは私が経験していることではありません。

4

1 に答える 1