public Find ( |
||
txn | ||
key | byte | |
Результат | byte[] |
private void InsertRecNo() { Upscaledb.Environment env = new Upscaledb.Environment(); Database db = new Database(); byte[] r1 = new byte[5]; byte[] r2; try { env.Create("ntest.db"); db = env.CreateDatabase(1, UpsConst.UPS_RECORD_NUMBER); r1[0] = 1; var k = db.InsertRecNo(r1); r2 = db.Find(k); checkEqual(r1, r2); r1[0] = 2; k = db.InsertRecNo(r1); r2 = db.Find(k); checkEqual(r1, r2); r1[0] = 3; k = db.InsertRecNo(r1); r2 = db.Find(k); checkEqual(r1, r2); } catch (DatabaseException e) { Assert.Fail("unexpected exception " + e); } db.Close(); env.Close(); }
private void InsertKey() { Upscaledb.Environment env = new Upscaledb.Environment(); Database db = new Database(); byte[] k = new byte[5]; byte[] r1 = new byte[5]; byte[] r2; try { env.Create("ntest.db"); db = env.CreateDatabase(1); k[0] = 1; r1[0] = 1; db.Insert(k, r1); r2 = db.Find(k); checkEqual(r1, r2); k[0] = 2; r1[0] = 2; db.Insert(k, r1); r2 = db.Find(k); checkEqual(r1, r2); k[0] = 3; r1[0] = 3; db.Insert(k, r1); r2 = db.Find(k); checkEqual(r1, r2); db.Close(); env.Close(); } catch (DatabaseException e) { Assert.Fail("unexpected exception " + e); } }
private void InsertKeyOverwrite() { Upscaledb.Environment env = new Upscaledb.Environment(); Database db = new Database(); byte[] k = new byte[5]; byte[] r = new byte[5]; try { env.Create("ntest.db"); db = env.CreateDatabase(1); db.Insert(k, r); r[0] = 1; db.Insert(k, r, UpsConst.UPS_OVERWRITE); byte[] r2 = db.Find(k); checkEqual(r, r2); db.Close(); env.Close(); } catch (DatabaseException e) { Assert.Fail("unexpected exception " + e); } }
private void FindUnknownKey() { Upscaledb.Environment env = new Upscaledb.Environment(); Database db = new Database(); byte[] k = new byte[5]; try { env.Create("ntest.db"); db = env.CreateDatabase(1); byte[] r = db.Find(k); } catch (DatabaseException e) { Assert.AreEqual(UpsConst.UPS_KEY_NOT_FOUND, e.ErrorCode); } db.Close(); env.Close(); }
private void FindKeyNull() { Upscaledb.Environment env = new Upscaledb.Environment(); Database db = new Database(); try { env.Create("ntest.db"); db = env.CreateDatabase(1); byte[] r = db.Find(null); } catch (NullReferenceException) { } db.Close(); env.Close(); }
private void EraseKeyTwice() { Upscaledb.Environment env = new Upscaledb.Environment(); Database db = new Database(); byte[] k = new byte[5]; byte[] r = new byte[5]; env.Create("ntest.db"); db = env.CreateDatabase(1); db.Insert(k, r); byte[] r2 = db.Find(k); checkEqual(r, r2); db.Erase(k); try { db.Erase(k); } catch (DatabaseException e) { Assert.AreEqual(UpsConst.UPS_KEY_NOT_FOUND, e.ErrorCode); } db.Close(); env.Close(); }
private void ApproxMatching() { Upscaledb.Environment env = new Upscaledb.Environment(); Database db = new Database(); byte[] k1 = new byte[5]; byte[] r1 = new byte[5]; k1[0] = 1; r1[0] = 1; byte[] k2 = new byte[5]; byte[] r2 = new byte[5]; k2[0] = 2; r2[0] = 2; byte[] k3 = new byte[5]; byte[] r3 = new byte[5]; k3[0] = 3; r3[0] = 3; try { env.Create("ntest.db"); db = env.CreateDatabase(1); db.Insert(k1, r1); db.Insert(k2, r2); db.Insert(k3, r3); byte[] r = db.Find(null, ref k2, UpsConst.UPS_FIND_GT_MATCH); checkEqual(r, r3); checkEqual(k2, k3); k2[0] = 2; r = db.Find(null, ref k2, UpsConst.UPS_FIND_LT_MATCH); checkEqual(r, r1); checkEqual(k2, k1); db.Close(); env.Close(); } catch (DatabaseException e) { Assert.Fail("unexpected exception " + e); } }
static void Main(string[] args) { byte[] key = new byte[5]; byte[] record = new byte[5]; Upscaledb.Environment env = new Upscaledb.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 != UpsConst.UPS_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!"); }