Integer in BDB schreiben ...
-
... geht nicht:
typedef unsigned short int ush; bool daten::put_int(string &name, ush &wert) { Dbt key,data; memset(&data,0,sizeof(data)); memset(&key,0,sizeof(key)); key.set_data(&name); key.set_ulen((u_int32_t) name.size()); data.set_data(&wert); data.set_ulen((u_int32_t) sizeof(ush)); int ret = main->getDb().put(NULL, &key, &data,DB_NOOVERWRITE); ... }
folgendes (seltsames) Verhalten:
1. Ein Wert lässt sich schreiben, jeder weitere Versuch (auch mit völlig anderen Namen/Werten) erzeugt ein DB_KEYEXISTS, auch nach Neustart des Programms
2. Eine Abfrageush temp = (ush)data.get_data();
liefert Sinnlose Werte
3. Die Größe der Datenbankdatei ändert sich auch nicht, ob ich etwas hineinschreibe oder nichtZum öffnen/schließen der DB nutze ich die mitgelieferten Beispiele
Ich hoffe es kann jemand helfen
Vielen Dank
ein genervter Karl-R.