private bool Put(object key, object value, uint flags) {
Data dkey = new Data(), dvalue = new Data();
try {
dkey = Data.New(key, binfmt, KeyType);
dvalue = Data.New(value, binfmt, ValueType);
int ret = funcs.put(dbp, env.Txn, ref dkey, ref dvalue, flags);
if (ret == DB_KEYEXIST) { return false; }
CheckError(ret);
if (this.Changed != null)
this.Changed (this, new BdbArgs (key, value));
return true;
} finally {
dkey.Free();
dvalue.Free();
}
}