private void Put(object key, object value, Dest putwhere) {
Data dkey = new Data(), dvalue = new Data();
try {
if (key != null)
dkey = Data.New(key, parent.binfmt, parent.KeyType);
else
dkey = new Data(); // for putwhere == Current
dvalue = Data.New(value, parent.binfmt, parent.ValueType);
int ret = funcs.put(cursorp, ref dkey, ref dvalue, (uint)putwhere);
if (ret == DB_KEYEXIST) { return; }
CheckError(ret);
} finally {
dkey.Free();
dvalue.Free();
}
}