public int Append (object value)
{
int recno = 0;
Data dkey = Data.New ();
Data dvalue = Data.New (value, binfmt, ValueType);
dkey.flags = Data.DB_DBT_USERMEM;
dkey.Size = sizeof (int);
dkey.ulen = dkey.Size;
unsafe {
dkey.Ptr = new IntPtr (&recno);
}
try {
int ret = funcs.put(dbp, env.Txn, ref dkey, ref dvalue, DB_APPEND);
CheckError (ret);
if (this.Changed != null)
this.Changed (this, new BdbArgs (recno, value));
if (this.Appended != null)
this.Appended (this, new BdbArgs (recno, value));
return recno;
}
finally {
dkey.Free ();
dvalue.Free ();
}
}