static void Test(Database db) { const string TABLE = "table"; const string COLUMN = "column"; const string COLUMN2 = "column2"; const string COLUMN3 = "column3"; const string COLUMN4 = "int_column"; const string COLUMN5 = "code"; const string msg = "ON222DT29102011T174217P0Z222"; const string message2 = "выаыаваыва"; using (var tx = db.Session.BeginTransaction()) using (var table = db.OpenTable(TABLE)) using (var cursor = table.OpenPrimaryCursor()) { const string message = "Hello world"; const string msg3 = "msg3"; var column1 = table.GetColumn<string>(COLUMN); var column2 = table.GetColumn<string>(COLUMN2); var column3 = table.GetColumn<string>(COLUMN3); var column4 = table.GetColumn<int>(COLUMN4); var column5 = table.GetColumn(COLUMN5); using (var ins = cursor.AddRow()) { ins.SetValue(column1, message); ins.SetValue(column2, message2); ins.SetValue(column3, msg3); ins.SetValue(column4, 1); ins.SetValue(column5, msg); ins.Save(); } using (var ins = cursor.AddRow()) { ins.SetValue(column1, msg3); ins.SetValue(column2, message2); ins.SetValue(column3, msg3); ins.SetValue(column4, 4); ins.SetValue(column5, msg); ins.Save(); } tx.Commit(); } Console.WriteLine(COLUMN + " : " + COLUMN2 + " : " + COLUMN3); using (var table = db.OpenTable(TABLE)) { var pf = new PredicateFactory(table); using (var cursor = table.OpenPrimaryCursor()) AssertRC(2, cursor, "Simply enum rows"); using (var cursor = table.OpenCursor(new Eq<string>(table.GetIndex<string>(COLUMN), "msg3"))) AssertRC(1, cursor, "Find where column1 = msg3"); using (var cursor = table.OpenCursor(pf.Eq(COLUMN, "msg3"))) AssertRC(1, cursor, "Find where column1 = msg3"); using (var cursor = table.OpenCursor(pf.Eq(COLUMN2, message2))) AssertRC(2, cursor, "Find where column2 = message2"); using (var cursor = table.OpenCursor(new StartsWith(table.GetIndex<string>(COLUMN), "Hell"))) AssertRC(1, cursor, "Find where column1 LIKE Hell"); var predicate = new And( pf.StartsWith(COLUMN, "ms"), pf.Eq(COLUMN2, message2) ); using (var cursor = table.OpenCursor(predicate)) AssertRC(1, cursor, "Find where column1 = ms AND column2 = message2"); using (var cursor = table.OpenCursor(pf.Between(COLUMN, "zzzs", "msg/", false, true))) AssertRC(1, cursor, "Find column1 between msg/ AND zzzs"); using (var cursor = table.OpenCursor(new Eq<int>(table.GetIndex<int>(COLUMN4), 4))) AssertRC(1, cursor, "Find column4 = 4"); using (var cursor = table.OpenCursor(new Eq<int>(table.GetIndex<int>(COLUMN4), 6))) AssertRC(0, cursor, "Find column4 = 6"); using (var cursor = table.OpenCursor(pf.Le(COLUMN4, 3))) AssertRC(1, cursor, "Find column4 < 3"); using (var cursor = table.OpenCursor(pf.Le(COLUMN4, 3))) { cursor.MoveNext(); using (var upd = cursor.EditRow()) { upd.SetValue(table.GetColumn<int>(COLUMN4), 6); upd.Save(); } } using (var c2 = table.OpenCursor(pf.Le(COLUMN4, 3))) AssertRC(0, c2, "Find column4 < 3"); using (var cursor = table.OpenCursor(pf.Eq(COLUMN5, msg))) AssertRC(2, cursor, "Find column5 = longMsg"); using (var cursor = table.OpenCursor(pf.Eq(COLUMN5, "ON222DT200102011T174244P0Z222"))) AssertRC(0, cursor, "Find column5 = longMsg"); using (var cursor = table.OpenCursor(pf.Eq(COLUMN5, "O"))) AssertRC(0, cursor, "Find column5 = longMsg2"); using (var cursor = table.OpenCursor(pf.Eq(COLUMN5, "4ON2"))) AssertRC(0, cursor, "Find column5 = longMsg3"); } Console.WriteLine("---"); Console.WriteLine("Succeeded {0} out of {1}", Succeeded, Total); }