public void TestGuidMultiKey() { DbEntry.Create(typeof(GuidMultiKey)); Assert.AreEqual("CREATE TABLE [Guid_Multi_Key] (\n\t[RoleId] UNIQUEIDENTIFIER NOT NULL ,\n\t[UserId] UNIQUEIDENTIFIER NOT NULL ,\n\tPRIMARY KEY([RoleId], [UserId])\n);\n<Text><30>()", StaticRecorder.LastMessage); }
public void TestNotIn() { DbEntry.From <SinglePersonSqlite>().Where(CK.K["Id"].NotIn(1, 3, 5, 7)).Select(); AssertSql(@"SELECT [Id],[Name] FROM [People] WHERE [Id] NOT IN (@in_0,@in_1,@in_2,@in_3); <Text><60>(@in_0=1:Int32,@in_1=3:Int32,@in_2=5:Int32,@in_3=7:Int32)"); }
public void TestTransactionWithoutUpdate() { DbEntry.UsingTransaction(() => Book.FindById(1)); }
public void RepStart(ref DbEntry cdata, RepStartMode mode) { DbRetVal ret; lock (rscLock) { DB_ENV* evp = CheckDisposed(); ret = evp->RepStart(evp, ref cdata.dbt, unchecked((uint)mode)); } Util.CheckRetVal(ret); }
public void TestUpperForLike() { DbEntry.From <SinglePersonSqlite>().Where(CK.K["Name"].ToUpper().Like("%tom%")).Select(); AssertSql(@"SELECT [Id],[Name] FROM [People] WHERE UPPER([Name]) LIKE @Name_0; <Text><60>(@Name_0=%tom%:String)"); }
public void TestUnsigned() { DbEntry.Create(typeof(UnsignedTestTable)); Assert.AreEqual("CREATE TABLE [Unsigned_Test_Table] (\n\t[Name] NTEXT NOT NULL ,\n\t[Age] INT UNSIGNED NOT NULL \n);\n<Text><30>()", StaticRecorder.LastMessage); }
public virtual T FindObject(Condition c) { return(DbEntry.GetObject <T>(c)); }
public void Open(Txn txn, ref DbEntry key, OpenFlags flags) { DbRetVal ret; if (txn != null) { lock (txn.rscLock) { DB_TXN* txp = txn.CheckDisposed(); ret = Open(txp, ref key, flags); } } else ret = Open((DB_TXN*)null, ref key, flags); Util.CheckRetVal(ret); }
public void TestPage() { DbEntry.Create(typeof(User)); var name = new TextBox(); name.ID = "user_name"; name.Text = "tom"; name.CssClass = "test"; var age = new TextBox(); age.ID = "user_age"; age.Text = "18"; age.CssClass = "test"; var label = new Label(); label.CssClass = "msg"; var page = new MyPage(name, age); page.Controls.Add(label); var msg = new NoticeLabelAdapter(label, "notice", "warning"); var ctx = ModelContext.GetInstance(typeof(User)); var vh = new ValidateHandler(); var obj = ctx.GetObject <User>(page, "parse error"); ctx.ValidateSave(page, vh, obj, msg, "hello", "inWarning", () => obj.Save()); Assert.AreEqual("test inWarning", name.CssClass); Assert.AreEqual("test", age.CssClass); Assert.AreEqual("msg warning", label.CssClass); Assert.AreEqual("<ul>\r\n<li>Invalid Field Name The length should be 6 to 8 but was 3.</li>\r\n</ul>\r\n", label.Text); name.Text = "tom456789"; vh = new ValidateHandler(); obj = ctx.GetObject <User>(page, "parse error"); msg = new NoticeLabelAdapter(label, "notice", "warning"); ctx.ValidateSave(page, vh, obj, msg, "hello", "inWarning", () => obj.Save()); Assert.AreEqual("test inWarning", name.CssClass); Assert.AreEqual("test", age.CssClass); Assert.AreEqual("msg warning", label.CssClass); Assert.AreEqual("<ul>\r\n<li>Invalid Field Name The length should be 6 to 8 but was 9.</li>\r\n</ul>\r\n", label.Text); try { name.Text = "tom4567"; age.Text = ""; vh = new ValidateHandler(); msg = new NoticeLabelAdapter(label, "notice", "warning"); obj = ctx.GetObject <User>(page, "Field [{0}] parse error{1}"); ctx.ValidateSave(page, vh, obj, msg, "hello", "inWarning", () => obj.Save()); } catch (WebControlException ex) { ctx.ResetInputCss(page, "inWarning"); PageHelper.SetCtrlClass(ex.RelatedControl, "inWarning"); msg.AddMessage(ex.Message); msg.ShowWarning(); } Assert.AreEqual("test", name.CssClass); Assert.AreEqual("test inWarning", age.CssClass); Assert.AreEqual("msg warning", label.CssClass); Assert.AreEqual("<ul>\r\n<li>Field [TestField] parse error</li>\r\n</ul>\r\n", label.Text); name.Text = "tom4567"; age.Text = "20"; vh = new ValidateHandler(); obj = ctx.GetObject <User>(page, "parse error"); msg = new NoticeLabelAdapter(label, "notice", "warning"); ctx.ValidateSave(page, vh, obj, msg, "hello", "inWarning", () => obj.Save()); Assert.AreEqual("test", name.CssClass); Assert.AreEqual("test", age.CssClass); Assert.AreEqual("msg notice", label.CssClass); Assert.AreEqual("<ul>\r\n<li>hello</li>\r\n</ul>\r\n", label.Text); }
public void SetPageCookie(ref DbEntry cookie) { DbRetVal ret; lock (rscLock) { DB_MPOOLFILE* mpf = CheckDisposed(); fixed (byte* cookieBufP = cookie.Buffer) { cookie.dbt.data = cookieBufP + cookie.Start; ret = mpf->SetPageCookie(mpf, ref cookie.dbt); } } Util.CheckRetVal(ret); }
DbRetVal Open(DB_TXN* txp, ref DbEntry key, OpenFlags flags) { DbRetVal ret; lock (rscLock) { DB_SEQUENCE* seqp = CheckDisposed(); fixed (byte* keyBufP = key.Buffer) { key.dbt.data = keyBufP + key.Start; ret = seqp->Open(seqp, txp, ref key.dbt, unchecked((UInt32)flags)); } // initialize function pointer delegates SeqGet = seqp->Get; } return ret; }
public void GetPageCookie(out DbEntry cookie) { DbRetVal ret; DBT cookieDbt; lock (rscLock) { DB_MPOOLFILE* mpf = CheckDisposed(); ret = mpf->GetPageCookie(mpf, out cookieDbt); } Util.CheckRetVal(ret); if (cookieDbt.size != 0) { byte[] buffer = new byte[cookieDbt.size]; Marshal.Copy((IntPtr)cookieDbt.data, buffer, 0, unchecked((int)cookieDbt.size)); cookie = DbEntry.Out(buffer); } else cookie = new DbEntry(); }
public Lsn LogPut(ref DbEntry data, LogPutFlags flags) { DbRetVal ret; Lsn lsn; lock (rscLock) { DB_ENV* evp = CheckDisposed(); ret = evp->LogPut(evp, out lsn.lsn, ref data.dbt, unchecked((UInt32)flags)); } Util.CheckRetVal(ret); return lsn; }
public RepStatus RepProcessMessage(ref DbEntry control, ref DbEntry rec, ref int envId, ref Lsn retLsn) { DbRetVal ret; DB_LSN lsn; lock (rscLock) { DB_ENV* evp = CheckDisposed(); ret = evp->RepProcessMessage(evp, ref control.dbt, ref rec.dbt, ref envId, out lsn); } switch (ret) { case DbRetVal.SUCCESS: break; case DbRetVal.REP_DUPMASTER: break; case DbRetVal.REP_HOLDELECTION: break; #if BDB_4_5_20 case DbRetVal.REP_IGNORE: break; #endif case DbRetVal.REP_ISPERM: retLsn.lsn = lsn; break; #if BDB_4_5_20 case DbRetVal.REP_JOIN_FAILURE: break; #endif case DbRetVal.REP_NEWMASTER: break; case DbRetVal.REP_NEWSITE: break; case DbRetVal.REP_NOTPERM: retLsn.lsn = lsn; break; #if BDB_4_3_29 case DbRetVal.REP_STARTUPDONE: break; #endif default: Util.CheckRetVal(ret); break; } return (RepStatus)ret; }
public void Test5() { DbEntry.Create(typeof(CategorySqlite)); Assert.AreEqual("CREATE TABLE [Categories] (\n\t[Id] INTEGER PRIMARY KEY AUTOINCREMENT ,\n\t[Name] NTEXT NOT NULL \n);\n<Text><30>()", StaticRecorder.LastMessage); }
public List <T> Find(Expression <Func <T, bool> > condition) { return(DbEntry.From <T>().Where(condition).OrderBy(_order).Select()); }
public void Test10() { DbEntry.Create(typeof(ReaderSqlite)); Assert.AreEqual(1, StaticRecorder.Messages.Count); Assert.AreEqual("CREATE TABLE [Reader] (\n\t[Id] INTEGER PRIMARY KEY AUTOINCREMENT ,\n\t[Name] NTEXT NOT NULL \n);\n<Text><30>()", StaticRecorder.Messages[0]); }
public void TestCreate() { DbEntry.Create(typeof(lzUser2)); Assert.AreEqual("CREATE TABLE [lz_User2] (\n\t[Id] INTEGER PRIMARY KEY AUTOINCREMENT ,\n\t[Name] NTEXT NOT NULL ,\n\t[Profile] NTEXT NOT NULL \n);\n<Text><30>()", StaticRecorder.LastMessage); }
protected bool Equals(DbEntry other) { return Id == other.Id; }
public void TestCreate1() { DbEntry.Create(typeof(lzpUser1)); Assert.AreEqual("CREATE TABLE [User] (\n\t[Id] INTEGER PRIMARY KEY AUTOINCREMENT ,\n\t[Name] NTEXT NOT NULL ,\n\t[MyTest] VARCHAR (10) NULL \n);\nCREATE UNIQUE INDEX [IX_User_test] ON [User] ([MyTest] ASC);\n<Text><30>()", StaticRecorder.LastMessage); }
public IList <T> Lookup <T>(ICondition condition) where T : class { dbName = typeof(T).FullName; initDatabase(); List <T> result = new List <T>( ); Txn trans = env.TxnBegin(null, Txn.BeginFlags.None); switch (condition.Name) { case "SELECT_ALL": using (DbBTreeCursor cursor = dbInstance.OpenCursor(null, DbFileCursor.CreateFlags.None)) { T cust = null; IEnumerable <KeyDataPair> lst = cursor.ItemsForward(false, DbFileCursor.ReadFlags.None); foreach (KeyDataPair pair in lst) { using (MemoryStream mem = new MemoryStream(pair.Data.Buffer)) { T t = (T)formatter.Deserialize(mem); result.Add(t); } } } break; case "SELECT_BY_CODE": SelectByCodeCondition cond = condition as SelectByCodeCondition; if (cond == null) { throw new InvalidDataException(String.Format("Invalid {0} condition", condition.Name)); } foreach (int i in cond.HashCodes) { T t = null; byte[] buf = new byte[1024]; MemoryStream key = new MemoryStream( ); MemoryStream value = new MemoryStream(); formatter.Serialize(key, i); DbEntry dbKey = DbEntry.InOut(key.ToArray()); DbEntry dbVal = DbEntry.Out(buf); while (true) { ReadStatus status = dbInstance.GetExact(trans, ref dbKey, ref dbVal, DbFile.ReadFlags.None); switch (status) { case ReadStatus.BufferSmall: if (dbVal.Buffer.Length < dbVal.Size) { value.SetLength(dbVal.Size); dbVal = DbEntry.Out(value.GetBuffer()); } continue; case ReadStatus.KeyEmpty: goto brk; case ReadStatus.NotFound: goto brk; case ReadStatus.Success: value.Position = 0; value.SetLength(dbVal.Size); value.Write(dbVal.Buffer, 0, dbVal.Size); value.Flush(); value.Seek(0, SeekOrigin.Begin); t = (T)formatter.Deserialize(value); result.Add(t); key.Dispose(); value.Dispose(); break; } } brk :; } break; default: throw new NotImplementedException(String.Format("Condition {0} is not implemented", condition.Name)); } trans.Commit(Txn.CommitMode.Sync); env.Close(); return(result); }
public void TestRead() { DbEntry.GetObject <lzUser2>(1); Assert.AreEqual("SELECT [Id],[Name] FROM [lz_User2] WHERE [Id] = @Id_0;\n<Text><60>(@Id_0=1:Int32)", StaticRecorder.LastMessage); }
public void TestUpperFunction() { DbEntry.From <SinglePersonSqlite>().Where(CK.K["Name"].ToUpper() == "tom").Select(); AssertSql(@"SELECT [Id],[Name] FROM [People] WHERE UPPER([Name]) = @Name_0; <Text><60>(@Name_0=tom:String)"); }
public void TestLazyLoadFieldForCondition2() { DbEntry.From <lzpUserSqlite>().Where(p => p.Profile.Value == "test").Select(); AssertSql("SELECT [Id],[Name] FROM [lzp_User_Sqlite] WHERE [Profile] = @Profile_0;\n<Text><60>(@Profile_0=test:String)"); }
public void TestInSql() { DbEntry.From <SinglePersonSqlite>().Where(CK.K["Id"].InSql("Select Id From Others")).Select(); AssertSql(@"SELECT [Id],[Name] FROM [People] WHERE [Id] IN (Select Id From Others); <Text><60>()"); }
void AddApp(DbEntry app) => Application.Instance.Invoke(delegate { lstApps.Add(new DBEntryForEto(app)); });
public void TestNotIn2() { DbEntry.From <SinglePersonSqlite>().Where(CK.K["Name"].NotIn("Tom", "Jerry")).Select(); AssertSql(@"SELECT [Id],[Name] FROM [People] WHERE [Name] NOT IN (@in_0,@in_1); <Text><60>(@in_0=Tom:String,@in_1=Jerry:String)"); }
public static LockRequest ForAcquire(LockMode mode, ref DbEntry obj) { LockRequest lr = new LockRequest(LockOperation.Acquire, mode, 0, ref obj, new Lock()); return lr; }
public DBEntryForEto(DbEntry item) => _item = item;
public static LockRequest ForAcquireWithTimeout(LockMode mode, int timeout, ref DbEntry obj) { LockRequest lr = new LockRequest(LockOperation.AcquireTimeout, mode, timeout, ref obj, new Lock()); return lr; }
public void Test3() { DbEntry.Create(typeof(MyTest3)); Assert.AreEqual("CREATE TABLE [My_Test3] (\n\t[Id] INTEGER PRIMARY KEY AUTOINCREMENT ,\n\t[Name] NTEXT NOT NULL ,\n\t[Age] INT NOT NULL \n);\nCREATE UNIQUE INDEX [IX_My_Test3_Name_Age] ON [My_Test3] ([Name] DESC, [Age] ASC);\n<Text><30>()", StaticRecorder.LastMessage); }
public static LockRequest ForReleaseObj(ref DbEntry obj) { LockRequest lr = new LockRequest(); lr.op = LockOperation.ReleaseObj; lr.obj = obj; return lr; }
public void Test8() { DbEntry.Create(typeof(MyTest8)); Assert.AreEqual("CREATE TABLE [MyTest] (\n\t[Id] BIGINT NOT NULL ,\n\t[Name] NVARCHAR (50) NOT NULL ,\n\t[Age] INT NOT NULL ,\n\tPRIMARY KEY([Id], [Name])\n);\n<Text><30>()", StaticRecorder.LastMessage); }
public LockRequest(LockOperation op, LockMode mode, int timeout, ref DbEntry obj, Lock lck) { this.op = op; this.mode = mode; this.timeout = timeout; this.obj = obj; this.lck = lck; }
public void TestGuidKey() { DbEntry.Create(typeof(GuidKeySqlite)); Assert.AreEqual(1, StaticRecorder.Messages.Count); Assert.AreEqual("CREATE TABLE [Guid_Key_Sqlite] (\n\t[Id] UNIQUEIDENTIFIER NOT NULL PRIMARY KEY,\n\t[Name] NTEXT NOT NULL \n);\n<Text><30>()", StaticRecorder.LastMessage); }
public void TestJoinTableNoCreate() { DbEntry.From <JoinTableNoCreate>().Where(Condition.Empty).Select(); }
public void Test1() { var list = DbEntry.From<JoinClass>().Where(Condition.Empty).Select(); Assert.IsNotNull(list); Assert.AreEqual(0, list.Count); }
public void TestPartOf() { DbEntry.From <DtPart>().Where(Condition.Empty).Select(); AssertSql(@"SELECT [Id],[dtValue] FROM [DateAndTime]; <Text><60>()"); }
public virtual T FindObject(int pkey) { return(DbEntry.GetObject <T>(pkey)); }
public void Test3() { Assert.AreEqual(3, DbEntry.From <Category>().Where(Condition.Empty).GetCount()); Assert.AreEqual(5, DbEntry.From <Book>().Where(Condition.Empty).GetCount()); Assert.AreEqual(2, DbEntry.From <Book>().Where(CK.K["Category_Id"] == 3).GetCount()); }
public void TestCreate() { DbEntry.CreateDeleteToTable(typeof(DeleteToUser)); Assert.AreEqual("CREATE TABLE [UnregUser] (\n\t[Id] INTEGER PRIMARY KEY AUTOINCREMENT ,\n\t[Name] NTEXT NOT NULL ,\n\t[DeletedOn] DATETIME NOT NULL \n);\n<Text><30>()", StaticRecorder.LastMessage); }
public void TestFindOneWithSqlServer2005() { var p = DbEntry.GetObject <Person>(o => o.Name == "test"); Assert.IsNull(p); }
public ReadStatus Get(ref Lsn lsn, ref DbEntry data, GetMode mode) { DbRetVal ret; lock (rscLock) { DB_LOGC* logcp = CheckDisposed(); fixed (byte* dataBufP = data.Buffer) { data.dbt.data = dataBufP + data.Start; ret = LogcGet(logcp, ref lsn.lsn, ref data.dbt, unchecked((UInt32)mode)); } } switch (ret) { case DbRetVal.NOTFOUND: break; case DbRetVal.BUFFER_SMALL: break; default: Util.CheckRetVal(ret); break; } data.SetReturnType(DbType.Unknown, 0); return (ReadStatus)ret; }
public Lock AcquireLock(int locker, LockFlags flags, ref DbEntry obj, LockMode mode) { DbRetVal ret; Lock lck = new Lock(); lock (rscLock) { DB_ENV* evp = CheckDisposed(); fixed (byte* objBufP = obj.Buffer) { obj.dbt.data = objBufP + obj.Start; ret = evp->LockGet(evp, unchecked((uint)locker), unchecked((uint)flags), ref obj.dbt, (DB_LOCKMODE)mode, ref lck.dblck); } } if (ret != DbRetVal.SUCCESS) ThrowLockException(ret, -1); return lck; }