コード例 #1
0
 static bool all(iSerializerSession sess)
 {
     foreach (var r in sess.Recordset <Record>().all())
     {
         Console.WriteLine("{0}", r);
     }
     return(false);
 }
コード例 #2
0
 /// <summary>Construct a detached cursor.</summary>
 /// <param name="session"></param>
 /// <param name="serializer"></param>
 /// <param name="idTable"></param>
 /// <param name="bReadonly"></param>
 protected EseCursorBase(iSerializerSession session, iTypeSerializer serializer, JET_TABLEID idTable, bool bReadonly)
 {
     m_session    = session;
     m_serializer = serializer;
     m_idTable    = idTable;
     m_bOwnsTable = false;
     m_bReadOnly  = bReadonly;
 }
コード例 #3
0
 /// <summary>Drop and recreate the complete table.</summary>
 public void RecreateTable(iSerializerSession sess)
 {
     using (Transaction transaction = new Transaction(sess.idSession))
     {
         Api.JetDeleteTable(sess.idSession, sess.idDatabase, this.m_tableName);
         CreateTableAndIndices(sess.idSession, sess.idDatabase);
         transaction.Commit(CommitTransactionGrbit.None);
     }
 }
コード例 #4
0
        public static void populateWithDebugData(iSerializerSession sess)
        {
            var curTest = sess.Cursor <FiltersTest>();

            using (var trans = sess.BeginTransaction())
            {
                curTest.AddRange(debugData());
                trans.Commit();
            }
        }
コード例 #5
0
        public Form1(iSerializerSession _sess)
        {
            m_sess = _sess;
            InitializeComponent();

            colSex.DataSource = EnumValues <Person.eSex>().ToList();

            dataGridView1.AutoGenerateColumns = false;
            dataGridView1.DataSource          = new EditableObjectList <Person>(_sess);
        }
コード例 #6
0
        protected ImportExport(iSerializerSession _sess, JET_TABLEID _idTable, iTypeSerializer _serializer)
        {
            sess       = _sess;
            idTable    = _idTable;
            serializer = _serializer as TypeSerializer;

            // Ensure the column IDs were lookup
            serializer.LookupColumnIDs(sess.idSession, idTable);
            schema = serializer.getColumnsSchema().ToList();
        }
コード例 #7
0
        static bool create(iSerializerSession sess)
        {
            Record r = askRecord();

            if (null == r)
            {
                return(false);
            }
            sess.Cursor <Record>().Add(r);
            return(true);
        }
コード例 #8
0
        static bool search(iSerializerSession sess)
        {
            Console.Write("Text substring: ");
            string txt = Console.ReadLine();

            foreach (var r in sess.Recordset <Record>().where (r => r.text.Contains(txt)))
            {
                Console.WriteLine("{0}", r);
            }
            return(false);
        }
コード例 #9
0
        /// <summary>Construct, adding all records from the specified table.</summary>
        /// <param name="sess"></param>
        public EditableObjectList(iSerializerSession sess)
        {
            m_table = sess.Cursor <tRow>();
            var bl = new BookmarkedRecordset <tRow>(m_table);

            foreach (var r in bl.all())
            {
                base.Add(r);
            }

            base.AllowNew = true;
        }
コード例 #10
0
        // This one is the real.
        public Form1(SessionPool _pool)
        {
            InitializeComponent();

            pool = _pool;
            sess = pool.GetSession();
            rs   = sess.Recordset <EfsEntry>();

            EFS.Initialize(rs);

            fileIo = new FileIoThread();
            // fileIo = new TrivialFileIo();

            InitFoldersView();
        }
コード例 #11
0
        void testPersons(iSerializerSession sess)
        {
            Recordset <Person> rs = sess.Recordset <Person>();

            Debug.WriteLine("Total count: {0}", rs.Count());

            Debug.WriteLine("Sorted by sex:");
            PrintPersons(rs.orderBy(p => p.sex));

            Debug.WriteLine("Males:");
            PrintPersons(rs.where (p => p.sex == Person.eSex.Male));

            Debug.WriteLine(@"Names containing ""Smith"":");
            PrintPersons(rs.where (p => p.name.Contains("Smith")));
        }
コード例 #12
0
        /// <summary>Construct the schema updater.</summary>
        /// <param name="sess"></param>
        public DatabaseSchemaUpdater(iSerializerSession sess)
        {
            this.session = sess;
            sess.AddType(typeof(DatabaseSchema));

            var cursor = sess.Cursor <DatabaseSchema>();

            if (cursor.TryMoveFirst())
            {
                this.DatabaseSchemaVersion = cursor.getCurrent().schemaVersion;
            }
            else
            {
                this.DatabaseSchemaVersion = 0;
            }
        }
コード例 #13
0
        static bool delete(iSerializerSession sess)
        {
            int?id = askId();

            if (!id.HasValue)
            {
                return(false);
            }
            var rs = sess.Recordset <Record>();

            if (!rs.seek(r => r.id == id.Value))
            {
                Console.WriteLine("Not found");
                return(false);
            }
            rs.cursor.delCurrent();
            return(true);
        }
コード例 #14
0
        static bool update(iSerializerSession sess)
        {
            Record u = askRecord();

            if (null == u)
            {
                return(false);
            }
            var rs = sess.Recordset <Record>();

            if (!rs.seek(r => r.id == u.id))
            {
                Console.WriteLine("Not found");
                return(false);
            }
            rs.cursor.Update(u);
            return(true);
        }
コード例 #15
0
        void testFilters(iSerializerSession sess)
        {
            Recordset <FiltersTest> rs = sess.Recordset <FiltersTest>();

            TestFilter[] filters = new TestFilter[]
            {
                // ft => ft.c2 == 8,
                // ft => ft.c2 >= 9,
                // ft => ft.c2 >= 2 && ft.c2 <= 3,
                // ft => 4 == ft.c2 && 5 == ft.c1 && ft.c3 >= 2 && ft.c3 <= 3,
                ft => Queries.greaterOrEqual(ft.c2, 9),
            };

            foreach (var f in filters)
            {
                var q = Queries.filter(rs.cursor.serializer, f);
                Debug.WriteLine("{0} => {1}", f.ToString(), rs.count(q));
            }
        }
コード例 #16
0
        static void PopulateDemoDatabase(iSerializerSession sess)
        {
            Person[] personsTest = new Person[]
            {
                new Person(Person.eSex.Female, "Jenifer Smith", new string[0]),
                new Person(Person.eSex.Male, "Konstantin", new string[] { "+7 926 139 63 18" }),
                new Person(Person.eSex.Male, "John Smith", new string[] { "+1 800 123 4567", "+1 800 123 4568" }),
                new Person(Person.eSex.Female, "Mary Jane", new string[] { "555-1212" }),
                new Person(Person.eSex.Other, "Microsoft", new string[] { "+1 800 642 7676", "1-800-892-5234" }),
            };

            Cursor <Person> curPerson = sess.Cursor <Person>();

            using (var trans = sess.BeginTransaction())
            {
                curPerson.AddRange(personsTest);
                trans.Commit();
            }
        }
コード例 #17
0
        static bool read(iSerializerSession sess)
        {
            int?id = askId();

            if (!id.HasValue)
            {
                return(false);
            }
            var rec = sess.Recordset <Record>().where (r => r.id == id.Value).FirstOrDefault();

            if (null != rec)
            {
                Console.WriteLine("{0}", rec);
            }
            else
            {
                Console.WriteLine("Not found");
            }
            return(false);
        }
コード例 #18
0
        static void RunTests(iSerializerSession sess)
        {
            var rs = sess.Recordset <Person>();

            using (var trans = sess.BeginTransaction())
            {
                Console.WriteLine("Total count: {0}", rs.Count());

                Console.WriteLine("Sorted by sex:");
                PrintPersons(rs.orderBy(p => p.sex));

                Console.WriteLine("Males:");
                PrintPersons(rs.where (p => Person.eSex.Male == p.sex));

                Console.WriteLine(@"Names containing ""Smith"":");
                PrintPersons(rs.where (p => p.name.Contains("Smith")));

                Console.WriteLine("Phone");
                PrintPersons(rs.where (p => Queries.Contains(p.phones, "+1 800 642 7676")));
                // The equivalent:
                // PrintPersons( rs.where( p => p.phones.Contains( "+1 800 642 7676" ) ) );
            }
        }
コード例 #19
0
 /// <summary>Construct the object</summary>
 /// <param name="cur">Cursor</param>
 /// <param name="idColumn">Column ID</param>
 public ColumnStreamWithPulse(EseCursorBase cur, JET_COLUMNID idColumn) : base(cur.idSession, cur.idTable, idColumn)
 {
     this.session = cur.session;
 }
コード例 #20
0
 public ImportExportTSV(iSerializerSession _sess, JET_TABLEID _idTable, TypeSerializer _serializer)
     : base(_sess, _idTable, _serializer)
 {
 }
コード例 #21
0
 /// <summary>Construct the cursor.</summary>
 public Cursor(iSerializerSession session, iTypeSerializer serializer, JET_TABLEID idTable, bool isReadOnly)
     : base(session, serializer, idTable, isReadOnly)
 {
 }