예제 #1
0
        public void Commit()
        {
            if (Transaction == null)
            {
                return;
            }

            if (Storage != null)
            {
                Storage.WriteTransactionStartPoint();
                foreach (var t in Transaction.Values)
                {
                    foreach (var r in t.DiskRows)
                    {
                        uint rowid = (uint)Storage.Append(r.tableId, r.columnId, r.values);
                    }
                    foreach (var d in t.DeletedRows)
                    {
                        Storage.Delete((uint)d);
                    }
                }
                Storage.WriteTransactionEndPoint();
                Storage.Flush();
            }

            Transaction = null;
        }