예제 #1
0
 /// <summary>
 /// Sets the members of this object from a native object.
 /// </summary>
 /// <param name="native">The native object.</param>
 internal void SetFromNativeDbinfoMisc(ref NATIVE_DBINFOMISC native)
 {
     unchecked
     {
         this._ulVersion          = (int)native.ulVersion;
         this._ulUpdate           = (int)native.ulUpdate;
         this._signDb             = new JET_SIGNATURE(native.signDb);
         this._dbstate            = (JET_dbstate)native.dbstate;
         this._lgposConsistent    = native.lgposConsistent;
         this._logtimeConsistent  = native.logtimeConsistent;
         this._logtimeAttach      = native.logtimeAttach;
         this._lgposAttach        = native.lgposAttach;
         this._logtimeDetach      = native.logtimeDetach;
         this._lgposDetach        = native.lgposDetach;
         this._signLog            = new JET_SIGNATURE(native.signLog);
         this._bkinfoFullPrev     = native.bkinfoFullPrev;
         this._bkinfoIncPrev      = native.bkinfoIncPrev;
         this._bkinfoFullCur      = native.bkinfoFullCur;
         this._fShadowingDisabled = 0 != native.fShadowingDisabled;
         this._fUpgradeDb         = 0 != native.fUpgradeDb;
         this._dwMajorVersion     = (int)native.dwMajorVersion;
         this._dwMinorVersion     = (int)native.dwMinorVersion;
         this._dwBuildNumber      = (int)native.dwBuildNumber;
         this._lSPNumber          = (int)native.lSPNumber;
         this._cbPageSize         = (int)native.cbPageSize;
     }
 }
예제 #2
0
        public void VerifyCreateDictionaryFromConfigSetWithTermFlags()
        {
            const string DictionaryLocation = "ConfigSetDictForTermFlags";
            string       dictionaryFilename = Path.Combine(DictionaryLocation, "ConfigSetDict.edb");
            var          config             = new DatabaseConfig()
            {
                SystemPath        = DictionaryLocation,
                LogFilePath       = DictionaryLocation,
                TempPath          = DictionaryLocation,
                DatabaseFilename  = dictionaryFilename,
                TableClass1Name   = "_testX_",
                DatabaseStopFlags = Windows7Grbits.Dirty,
            };

            using (var pd = new PersistentDictionary <int, Guid?>(config))
            {
                for (int i = 0; i < 256; i++)
                {
                    pd[i] = Guid.NewGuid();
                }

                Assert.IsTrue(File.Exists(dictionaryFilename));

                pd.Dispose();
            }

            JET_dbstate dbstate = GetDbState(dictionaryFilename);

            Console.WriteLine("Dbstate after TermDirty: {0}", dbstate);
            Assert.AreEqual(JET_dbstate.DirtyShutdown, dbstate);

            Cleanup.DeleteDirectoryWithRetry(DictionaryLocation);
        }
예제 #3
0
        // Token: 0x06000967 RID: 2407 RVA: 0x0002C3F4 File Offset: 0x0002A5F4
        public static bool IsV1IncrementalReseedSupported(string database)
        {
            JET_DBINFOMISC jet_DBINFOMISC;

            Api.JetGetDatabaseFileInfo(database, out jet_DBINFOMISC, JET_DbInfo.Misc);
            JET_dbstate dbstate = jet_DBINFOMISC.dbstate;

            return(dbstate == JET_dbstate.DirtyShutdown || dbstate == JET_dbstate.CleanShutdown);
        }
예제 #4
0
        // Token: 0x06000964 RID: 2404 RVA: 0x0002C3A4 File Offset: 0x0002A5A4
        public static bool IsIncrementalReseedPossible(JET_DBINFOMISC dbInfo)
        {
            JET_dbstate dbstate = dbInfo.dbstate;

            return(dbstate == JET_dbstate.DirtyShutdown || dbstate == (JET_dbstate)7 || dbstate == JET_dbstate.CleanShutdown || dbstate == (JET_dbstate)6);
        }