フラグを付けて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
います。ドキュメントには、キーがまだ存在しない場合は単に挿入されると記載されています。しかし、これは私が経験していることではありません。