public void OpenDatabaseNegative() { Hamster.Environment env = new Hamster.Environment(); try { env.Create("ntest.db"); Database db = env.OpenDatabase((short)99); } catch (DatabaseException e) { Assert.AreEqual(HamConst.HAM_DATABASE_NOT_FOUND, e.ErrorCode); } env.Close(); }
private Database OpenDatabase(string file) { List <Parameter> list = new List <Parameter>(); Parameter param1 = new Parameter(); param1.name = HamConst.HAM_PARAM_CACHESIZE; param1.value = 768 * 1024 * 1024; list.Add(param1); Hamster.Environment env = new Hamster.Environment(); Database db = new Database(); env.Open(file, 0, list.ToArray()); db = env.OpenDatabase(1); db.SetCompareFunc(new CompareFunc(NumericalCompareFunc)); return(db); }
private void CreateString() { Database db = new Database(); Hamster.Environment env = new Hamster.Environment(); try { env.Create("ntest.db"); db = env.CreateDatabase(1); db.Close(); env.Close(); env.Open("ntest.db"); db = env.OpenDatabase(1); db.Close(); env.Close(); } catch (DatabaseException e) { Assert.Fail("Unexpected exception " + e); } }
private void Cursor10000Test() { //create database Hamster.Environment env = new Hamster.Environment(); env.Create("ntest.db"); Parameter[] param = new Parameter[1]; param[0] = new Parameter(); param[0].name = HamConst.HAM_PARAM_KEY_TYPE; param[0].value = HamConst.HAM_TYPE_UINT64; Database db = env.CreateDatabase(1, 0, param); //insert records for (ulong i = 0; i < 10000; i++) { byte[] key = BitConverter.GetBytes(i); byte[] record = new byte[20]; db.Insert(key, record); } //close database db.Close(); //reopen again db = env.OpenDatabase(1); Cursor cursor = new Cursor(db); cursor.MoveFirst(); ulong firstKey = BitConverter.ToUInt64(cursor.GetKey(), 0); Assert.AreEqual((ulong)0, firstKey); cursor.MoveLast(); ulong lastKey = BitConverter.ToUInt64(cursor.GetKey(), 0); Assert.AreEqual((ulong)9999, lastKey); //close database cursor.Close(); db.Close(); env.Close(); }
public void EraseDatabase() { Hamster.Environment env = new Hamster.Environment(); byte[] k = new byte[5]; byte[] r = new byte[5]; env.Create("ntest.db"); Database db = env.CreateDatabase((short)13); db.Insert(k, r); db.Close(); env.EraseDatabase((short)13); try { db = env.OpenDatabase((short)15); } catch (DatabaseException e) { Assert.AreEqual(HamConst.HAM_DATABASE_NOT_FOUND, e.ErrorCode); } env.Close(); }
public void CreateDatabaseShort() { Hamster.Environment env = new Hamster.Environment(); byte[] k = new byte[5]; byte[] r = new byte[5]; try { env.Create("ntest.db"); Database db = env.CreateDatabase((short)13); db.Insert(k, r); db.Close(); db = env.OpenDatabase((short)13); byte[] f = db.Find(k); checkEqual(r, f); // db.Close(); env.Close(); } catch (DatabaseException e) { Assert.Fail("unexpected exception " + e); } }
public void CreateDatabaseShort() { Hamster.Environment env = new Hamster.Environment(); byte[] k=new byte[5]; byte[] r=new byte[5]; try { env.Create("ntest.db"); Database db = env.CreateDatabase((short)13); db.Insert(k, r); db.Close(); db = env.OpenDatabase((short)13); byte[] f = db.Find(k); checkEqual(r, f); // db.Close(); env.Close(); } catch (DatabaseException e) { Assert.Fail("unexpected exception " + e); } }
public void Encrypt() { Hamster.Environment env = new Hamster.Environment(); byte[] k = new byte[5]; byte[] r = new byte[5]; byte[] aeskey = new byte[16]; env.Create("ntest.db"); env.EnableEncryption(aeskey); Database db = env.CreateDatabase((short)13); db.Insert(k, r); db.Close(); env.Close(); env.Open("ntest.db"); env.EnableEncryption(aeskey); db = env.OpenDatabase((short)13); byte[] f = db.Find(k); checkEqual(k, f); db.Close(); env.Close(); }
public void Cursor10000Test() { //create database Hamster.Environment env = new Hamster.Environment(); env.Create("ntest.db"); Database hamster = env.CreateDatabase(1); //insert records for (ulong i = 0; i < 10000; i++) { byte[] key = BitConverter.GetBytes(i); byte[] record = new byte[20]; hamster.Insert(key, record); } //close database hamster.Close(); //reopen again hamster = env.OpenDatabase(1); Cursor cursor = new Cursor(hamster); cursor.MoveFirst(); ulong firstKey = BitConverter.ToUInt64(cursor.GetKey(), 0); Assert.AreEqual((ulong)0, firstKey); cursor.MoveLast(); ulong lastKey = BitConverter.ToUInt64(cursor.GetKey(), 0); Assert.AreEqual((ulong)9999, lastKey); //close database cursor.Close(); hamster.Close(); }
static void Main(string[] args) { byte[] key = new byte[5]; byte[] record = new byte[5]; Hamster.Environment env = new Hamster.Environment(); Database db = new Database(); /* * first, create a new Database */ env.Create("test.db"); db = env.CreateDatabase(1); /* * now we can insert, delete or lookup values in the Database * * for our test program, we just insert a few values, then look them * up, then delete them and try to look them up again (which will fail). */ for (int i = 0; i < LOOP; i++) { key[0] = (byte)i; record[0] = (byte)i; db.Insert(key, record); } /* * now look up all values */ for (int i = 0; i < LOOP; i++) { key[0] = (byte)i; byte[] r = db.Find(key); /* * check if the value is ok */ if (r[0] != (byte)i) { Console.Out.WriteLine("db.Find() returned bad value"); return; } } /* * close the Database handle, then re-open it (just to demonstrate how * to open a Database file) */ db.Close(); env.Close(); env.Open("test.db"); db = env.OpenDatabase(1); /* * now erase all values */ for (int i = 0; i < LOOP; i++) { key[0] = (byte)i; db.Erase(key); } /* * once more we try to find all values... every db.Find() call must * now fail with HAM_KEY_NOT_FOUND */ for (int i = 0; i < LOOP; i++) { key[0] = (byte)i; try { byte[] r = db.Find(key); } catch (DatabaseException e) { if (e.ErrorCode != HamConst.HAM_KEY_NOT_FOUND) { Console.Out.WriteLine("db.Find() returned error " + e); return; } } } /* * We're done! No need to close the Database handle - it's closed automatically */ Console.Out.WriteLine("Success!"); }
private Database OpenDatabase(string file) { List<Parameter> list = new List<Parameter>(); Parameter param1 = new Parameter(); param1.name = HamConst.HAM_PARAM_CACHESIZE; param1.value = 768 * 1024 * 1024; list.Add(param1); Hamster.Environment env = new Hamster.Environment(); Database db = new Database(); env.Open(file, 0, list.ToArray()); db = env.OpenDatabase(1); db.SetCompareFunc(new CompareFunc(NumericalCompareFunc)); return db; }