示例#1
0
        /// <summary>
        /// Compact the database file by connection string to it.
        /// </summary>
        /// <param name="connectionString">Connection string to the database file that should be compact.</param>
        /// <param name="newConnectionString">Connection string to the new destination database file that will be created.</param>
        private static void CompactDatabaseFile(string connectionString, string newConnectionString = null)
        {
            if (string.IsNullOrWhiteSpace(connectionString))
            {
                throw new ArgumentNullException("connectionString");
            }

            using (var sqlCeEngine = new SqlCeEngine(connectionString))
            {
                // Specify null destination connection string for in-place compaction
                sqlCeEngine.Compact(null);

                if (!string.IsNullOrWhiteSpace(newConnectionString))
                {
                    // Specify connection string for new database options; The following
                    // tokens are valid:
                    //      - Password
                    //      - LCID
                    //      - Encrypt
                    //
                    // All other SqlCeConnection.ConnectionString tokens are ignored
                    sqlCeEngine.Compact(newConnectionString);
                }
            }
        }
示例#2
0
        /// <summary>
        /// Reclaims wasted space in the database and recalculates identity column values.
        /// </summary>
        public void Compact()
        {
            using (var engine = new SqlCeEngine(ConnectionString))
            {
                engine.Compact(null);
            }

            // Same thing using Reflection:
            //object sqlCeEngine = null;
            //try
            //{
            //	sqlCeEngine = SqlCeEngineType.InvokeMember(null, BindingFlags.CreateInstance, null, null, new object[] { ConnectionString });

            //	SqlCeEngineType.InvokeMember("Compact", BindingFlags.InvokeMethod, null, sqlCeEngine, new object[] { null });
            //}
            //catch (TargetInvocationException ex)
            //{
            //	AppEventController.LogError(ex.InnerException ?? ex);
            //	throw;
            //}
            //finally
            //{
            //	if (sqlCeEngine != null)
            //		SqlCeEngineType.InvokeMember("Dispose", BindingFlags.InvokeMethod, null, sqlCeEngine, null);
            //}
        }
示例#3
0
 public void CompactDatabase(string connectionString, int commandTimeout = 30)
 {
     using (SqlCeEngine engine = new SqlCeEngine(connectionString))
     {
         engine.Compact(null);
     }
 }
示例#4
0
 public void CompactDatabase(string connectionString)
 {
     using (SqlCeEngine engine = new SqlCeEngine(connectionString))
     {
         engine.Compact(null);
     }
 }
示例#5
0
        /// <summary>
        /// Упаковать БД
        /// </summary>
        public static bool Compact()
        {
            if (string.IsNullOrEmpty(Conn.ConnectionString))
            {
                return(false);
            }
            else
            {
                bool wasConnected = Connected;

                try
                {
                    if (wasConnected)
                    {
                        Conn.Close();
                    }

                    SqlCeEngine engine = new SqlCeEngine(Conn.ConnectionString);
                    engine.Compact(string.Empty);
                }
                finally
                {
                    if (wasConnected)
                    {
                        Conn.Open();
                    }
                }

                return(true);
            }
        }
示例#6
0
        /// <summary>
        /// Copies the LM.
        /// </summary>
        /// <returns></returns>
        /// <remarks>Documented by Dev07, 2009-05-20</remarks>
        public static bool CopyLM(string source, string destination)
        {
            try
            {
                string filename = destination;
                if (File.Exists(filename))
                {
                    int i = 0;
                    while (File.Exists(filename.Replace(".mlm", "_" + i + ".mlm"))) i++;
                    filename = filename.Replace(".mlm", "_" + i + ".mlm");
                }

                string sourceConString = MSSQLCEConn.GetFullConnectionString(source);
                string desConString = MSSQLCEConn.GetFullConnectionString(filename);
                SqlCeEngine engine = new SqlCeEngine(sourceConString);
                engine.Compact(desConString);
                engine.Dispose();
            }
            catch (Exception e)
            {
                Trace.WriteLine(e.ToString());
                return false;
            }
            return true;
        }
示例#7
0
 public override void CompactDatabase()
 {
     using (SqlCeEngine engine = new SqlCeEngine())
     {
         engine.Compact(ConnectionString);
     }
 }
        /// <summary>
        /// Compacts the SQL CE database. No action is taken for other databases. Besides compacting the database, the
        /// process performs a critical task of resetting the identity columns of all tables. Without this step the app
        /// is at risk of generating the error 'A duplicate value cannot be inserted into a unique index' during a subsequent
        /// insert.
        /// </summary>
        /// <param name="backupFile">The backup file.</param>
        /// <exception cref="CannotCompactSqlCeException">Thrown when the database could not be compacted.</exception>
        private static void CompactSqlCeDb(IBackupFile backupFile)
        {
            if (backupFile.GalleryDataStore != ProviderDataStore.SqlCe)
            {
                return;
            }

            try
            {
                var engine = new SqlCeEngine(backupFile.ConnectionString);
                engine.Compact(null);
            }
            catch (SqlCeException)
            {
                // During testing it was observed that calling Compact could result in the error "Could not load database compaction library".
                // But if we pause and try again it succeeds.
                Pause();
                var engineSecondTry = new SqlCeEngine(backupFile.ConnectionString);
                try
                {
                    engineSecondTry.Compact(null);
                }
                catch (SqlCeException ex)
                {
                    throw new CannotCompactSqlCeException("The database was successfully restored, but it could not be compacted. Navigate to the Site Settings page and manually perform a compaction. Error: " + ex.Message, ex);
                }
            }
        }
示例#9
0
 /// <summary>
 /// Reclaims wasted space in the database and recalculates identity column values. Applies only to SQL CE.
 /// </summary>
 internal static void Compact()
 {
     using (SqlCeEngine engine = new SqlCeEngine(Util.ConnectionString))
     {
         engine.Compact(null);
     }
 }
示例#10
0
        /// <summary>
        /// Copies the LM.
        /// </summary>
        /// <returns></returns>
        /// <remarks>Documented by Dev07, 2009-05-20</remarks>
        public static bool CopyLM(string source, string destination)
        {
            try
            {
                string filename = destination;
                if (File.Exists(filename))
                {
                    int i = 0;
                    while (File.Exists(filename.Replace(".mlm", "_" + i + ".mlm")))
                    {
                        i++;
                    }
                    filename = filename.Replace(".mlm", "_" + i + ".mlm");
                }

                string      sourceConString = MSSQLCEConn.GetFullConnectionString(source);
                string      desConString    = MSSQLCEConn.GetFullConnectionString(filename);
                SqlCeEngine engine          = new SqlCeEngine(sourceConString);
                engine.Compact(desConString);
                engine.Dispose();
            }
            catch (Exception e)
            {
                Trace.WriteLine(e.ToString());
                return(false);
            }
            return(true);
        }
示例#11
0
 public void CompactDatabase(string connectionString)
 {
     using (SqlCeEngine engine = new SqlCeEngine(connectionString))
     {
         engine.Compact(null);
     }
 }
示例#12
0
 public void Optimize()  //сжимает и перестаривает индексы
 {
     connection.Close();
     using (SqlCeEngine engine = new SqlCeEngine(connectionString))
         engine.Compact(null);
     connection.Open();
 }
示例#13
0
        //=================METODO PARA COMPACTAR A BASE DE DADOS=======================
        //40º
        //compactar a base de dados = ao usuario excluir um registro fica uma linha em branco
        //aqui veremos um metodo para apagar essas linhas em branco e compactar a base de dados
        public bool COMPACTAR_BASEDADOS()
        {
            bool concluido = false;


            try
            {
                SqlCeEngine motor = new SqlCeEngine();
                motor.LocalConnectionString = stringconexao;
                motor.Compact(stringconexao);
                concluido = true;
            }
            catch (Exception ex)
            {
                concluido = false;
                MessageBox.Show("ERROR: " + ex.Message);//so coloco esse erro para min para o usario nao posso por Exception
            }

            return(concluido);
            //o usuario não precisa saber da existencia desse metodo
            //então nao coloque botoes de compactar base de dados, apenas adicione no codigo
            //lembrando que a base de dados precisa estar fechada no pc principal do codigo !!!!

            //executar ao atingir 100 registros, de 100 em 100 seria legal.
        }
示例#14
0
 /// <summary>
 /// Compacts and shrinks the given database.
 /// </summary>
 public void Compact()
 {
     using (var eng = new SqlCeEngine(_connectionString))
     {
         eng.Compact(_connectionString);
         eng.Shrink();
     }
 }
    private void CompactDatabase(object sender, EventArgs e)
    {
        _connection.Close();
        var connectionString = _objectExplorer.ConnectionString;
        var engine           = new SqlCeEngine(connectionString);

        engine.Compact(null);
        _connection.Open();
    }
示例#16
0
        private void CompactDataBaseToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Program.dbData3060.SubmitChanges();
            Program.dbData3060.Connection.Close();
            Program.dbData3060 = null;
            string      connectString = "Data Source = " + global::nsPuls3060.Properties.Settings.Default.DataBasePath;
            SqlCeEngine engine        = new SqlCeEngine(connectString);

            engine.Compact(null);
            this.Close();
        }
示例#17
0
 public void ChangeDatabasePassword(string connectionString, string password)
 {
     if (string.IsNullOrEmpty(password))
     {
         throw new NullReferenceException("Password missing");
     }
     using (SqlCeEngine engine = new SqlCeEngine(connectionString))
     {
         engine.Compact(string.Format("Data Source=;Password={0}", password));
     }
 }
 public bool ChangeLocalDataBasePassword(string password)
 {
     //testing
     //password = "";
     //
     try
     {
         SqlCeEngine engine = new SqlCeEngine(this.ConnectionString);
         engine.Compact(null);
         string operationConnectionString = "Data Source=; Password="******";";
         engine.Compact(operationConnectionString);
         DatabaseAccess.LocalDbPassword = password;
         return(true);
     }
     catch (Exception ex)
     {
         Console.WriteLine("Exception in ChangeLocalDataBasePassword() => " + ex.Message);
         return(false);
     }
 }
示例#19
0
        // Calls SQLCE's compactor
        public void compactDatabase()
        {
            string connString = @"Data Source = " + dbPath; // Create connection string for SQLCE DB
            SqlCeEngine engine = new SqlCeEngine(connString); // Instantiate engine object

            // Do the compaction
            engine.Compact(null);
            // We then verify the database, just incase.
            if (!engine.Verify())
            {
                throw new Exception("Database corrupt");
            }
        }
示例#20
0
        public void butChangeSSCEPwd_ClickTest()
        {
            string oldPwd = string.Empty;
            string newPwd = "1111";

            //Change old pwd to new pwd
            using (SqlCeEngine eg = new SqlCeEngine())
            {
                eg.LocalConnectionString = String.Format("Data Source={0};Password={1}", GlobalInfo.SqlCE_TestFile, oldPwd);
                eg.Compact(string.Format("Data Source={0};Password={1}", GlobalInfo.SqlCE_TestFile, newPwd));
            }

            CoreEA.ICoreEAHander core = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.SqlCE35).X_Handler;
            core.Open(new LoginInfo_SSCE()
            {
                DbName = GlobalInfo.SqlCE_TestFile,
                Pwd    = newPwd,
            });

            bool status1 = core.IsOpened;

            if (core.IsOpened)
            {
                core.Close();
                core.Dispose();
            }
            //change new pwd to old pwd
            using (SqlCeEngine eg = new SqlCeEngine())
            {
                eg.LocalConnectionString = String.Format("Data Source={0};Password={1}", GlobalInfo.SqlCE_TestFile, newPwd);
                eg.Compact(string.Format("Data Source={0};Password={1}", GlobalInfo.SqlCE_TestFile, oldPwd));
            }

            CoreEA.ICoreEAHander core2 = new CoreEA.CoreE(CoreEA.CoreE.UsedDatabaseType.SqlCE35).X_Handler;
            core2.Open(new LoginInfo_SSCE()
            {
                DbName = GlobalInfo.SqlCE_TestFile,
                Pwd    = oldPwd,
            });
            bool status2 = core2.IsOpened;

            if (core2.IsOpened)
            {
                core2.Close();
                core2.Dispose();
            }

            Assert.AreEqual(status1, status2);
        }
示例#21
0
        public bool ShrinkDatabase()
        {
            try
            {
                SqlCeEngine engine = new SqlCeEngine(_connection.ConnectionString);

                engine.Compact(_connection.ConnectionString);
                engine.Shrink();
            }
            catch (Exception exp)
            {
                string msg = exp.Message;
                //System.Windows.Forms.MessageBox.Show(msg);
                return(false);
            }
            return(true);
        }
示例#22
0
        public string ChangeDatabasePassword(string connectionString, string password)
        {
            if (password == null)
            {
                password = string.Empty;
            }
            using (SqlCeEngine engine = new SqlCeEngine(connectionString))
            {
                engine.Compact(string.Format("Data Source=;Password={0}", password));
            }
#if V40
            var builder = new SqlCeConnectionStringBuilder(connectionString);
            builder.Password = password;
            return(builder.ConnectionString);
#else
            return(string.Empty);
#endif
        }
        /// <summary>
        /// Calls the engine compact asynchronous.
        /// </summary>
        /// <returns>Task.</returns>
        public static Task CallEngineCompactAsync()
        {
            Task t = Task.Run(() =>
            {
                DatabaseCommands commands = new DatabaseCommands();

                using (SqlCeEngine engine = new SqlCeEngine(commands.GetConnectionString()))
                {
                    ConnectionStringSettings conSetting = new ConnectionStringSettings();
                    conSetting = ConfigHelper.save_new_connection(commands.GetConnectionString());

                    engine.Compact(conSetting.ConnectionString);
                }
            });

            t.Wait();
            return(t);
        }
示例#24
0
 /// <summary>
 /// Compacte la base de donnée
 /// </summary>
 /// <param name="compactException"></param>
 /// <returns></returns>
 public bool Compact(out Exception compactException)
 {
     compactException = null;
     GetConnection().Close();
     try
     {
         using (SqlCeEngine engine = new SqlCeEngine(ConnectionString))
         {
             engine.Compact(null);
             return(true);
         }
     }
     catch (Exception innerCompactException)
     {
         compactException = innerCompactException;
         IsAvailable      = false;
     }
     return(false);
 }
示例#25
0
        internal bool ChangePassword(string connectionString, string oldPassword, string newPassword)
        {
            try
            {
                SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(connectionString);
                builder.Password = oldPassword;
                SqlCeConnection con    = new SqlCeConnection(builder.ConnectionString);
                SqlCeEngine     engine = new SqlCeEngine(builder.ConnectionString);
                builder.Encrypt = true;

                builder.Password = newPassword;
                engine.Compact(builder.ConnectionString);
                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
示例#26
0
        private void CompactDatabase(object sender, EventArgs e)
        {
            var form   = DataCommanderApplication.Instance.MainForm.ActiveMdiChild;
            var cursor = form.Cursor;

            try
            {
                form.Cursor = Cursors.WaitCursor;
                _connection.Close();
                var connectionString = _objectExplorer.ConnectionString;
                var engine           = new SqlCeEngine(connectionString);
                engine.Compact(null);
                _connection.Open();
            }
            finally
            {
                form.Cursor = cursor;
            }
        }
示例#27
0
        }         // PrepareDatabase

        static void CompactDatabase()
        {
            Console.Write("Compacting EPG database...");

            try
            {
                using (var engine = new SqlCeEngine())
                {
                    engine.LocalConnectionString = "Data source=\"" + DbFile + "\";Password=\"movistartv.codeplex.com\"";
                    engine.Compact("Data source=;Password=\"movistartv.codeplex.com\"");
                } // using engine
            }
            catch (Exception ex)
            {
                Console.WriteLine(" error");
                Console.WriteLine(ex.Message);
            } // try-catch

            Console.WriteLine(" ok");
        } // CompactDatabase
示例#28
0
        private void butCompact_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                string connStr = CoreEA.ConnSTR.DbConnectionString.SSCE.GetSSCEConnectionString(txtDbPath.Text,
                                                                                                txtPwd.Password, (bool)chkIsEncrypted.IsChecked);
                string targetFile = Guid.NewGuid().ToString();
                targetFile += ".sdf";

                SqlCeEngine ce       = new SqlCeEngine(connStr);
                string      connStr2 = CoreEA.ConnSTR.DbConnectionString.SSCE.GetSSCEConnectionString(targetFile,
                                                                                                      "", false);

                ce.Compact(connStr2);
                ("Compact successful to" + targetFile).Show();
            }
            catch (Exception eee)
            {
                eee.HandleMyException();
            }
        }
示例#29
0
 public static void CompactDatabase()
 {
     string src     = ConnectionParamter;
     string dest    = ConnectionParamter+".tmp";
     // Initialize SqlCeEngine object.
     SqlCeEngine engine = new SqlCeEngine("Data Source = " + src);
     try {
        //engine.Repair("Data Source = " + src, RepairOption.DeleteCorruptedRows);
         engine.Compact("Data Source = " + dest);
         engine.Dispose();
         File.Delete(src);
         File.Move(dest, src);
     } catch(SqlCeException e) {
         //Use your own error handling routine.
         //ShowErrors(e);
         CommonUtils.LogError(e.Message,e);
     } finally {
         //Dispose of the SqlCeEngine object.
         engine.Dispose();
     }
 }
        /// <summary>
        /// Compacts the SQL CE database. No action is taken for other databases. Besides compacting the database, the
        /// process performs a critical task of resetting the identity columns of all tables. Without this step the app
        /// is at risk of generating the error 'A duplicate value cannot be inserted into a unique index' during a subsequent
        /// insert.
        /// </summary>
        /// <param name="backupFile">The backup file.</param>
        /// <exception cref="CannotCompactSqlCeException">Thrown when the database could not be compacted.</exception>
        private static void CompactSqlCeDb(IBackupFile backupFile)
        {
            if (backupFile.GalleryDataStore != ProviderDataStore.SqlCe)
                return;

            try
            {
                var engine = new SqlCeEngine(backupFile.ConnectionString);
                engine.Compact(null);
            }
            catch (SqlCeException)
            {
                // During testing it was observed that calling Compact could result in the error "Could not load database compaction library".
                // But if we pause and try again it succeeds.
                Pause();
                var engineSecondTry = new SqlCeEngine(backupFile.ConnectionString);
                try
                {
                    engineSecondTry.Compact(null);
                }
                catch (SqlCeException ex)
                {
                    throw new CannotCompactSqlCeException("The database was successfully restored, but it could not be compacted. Navigate to the Site Settings page and manually perform a compaction. Error: " + ex.Message, ex);
                }
            }
        }
示例#31
0
        internal void Execute(EngineAction action, string newConnectionString)
        {
            // Specify connection string for new database options; The following
            // tokens are valid:
            //      - Password
            //      - LCID
            //      - Encryption Mode
            //      - Case Sensitive
            //
            // All other SqlCeConnection.ConnectionString tokens are ignored
            //
            //  engine.Compact("Data Source=; Password =a@3!7f$dQ;");

            if (action != EngineAction.GetInfo)
            {
                using (SqlCeEngine engine = new SqlCeEngine(connectionString))
                {
                    switch (action)
                    {
                    case EngineAction.Undefined:
                        break;

                    case EngineAction.Shrink:
                        engine.Shrink();
                        Console.WriteLine("Database successfully shrunk");
                        break;

                    case EngineAction.Verify:
                        Console.WriteLine(engine.Verify(VerifyOption.Enhanced)
                                            ? "Database successfully verified"
                                            : "Database verification failed");
                        break;

                    case EngineAction.Compact:
                        engine.Compact(null);
                        Console.WriteLine("Database successfully compacted");
                        break;

                    case EngineAction.Upgrade:
                        engine.Upgrade();
                        Console.WriteLine("Database successfully upgraded");
                        break;

                    case EngineAction.Create:
                        engine.CreateDatabase();
                        Console.WriteLine("Database successfully created");
                        break;

                    case EngineAction.RepairDelete:
                        engine.Repair(null, RepairOption.DeleteCorruptedRows);
                        Console.WriteLine("Database successfully repaired");
                        break;

                    case EngineAction.RepairRecover:
                        engine.Repair(null, RepairOption.RecoverAllOrFail);
                        Console.WriteLine("Database successfully repaired");
                        break;

                    case EngineAction.SetOption:
                        engine.Compact(newConnectionString);
                        Console.WriteLine("Database option(s) successfully changed");
                        break;

                    default:
                        break;
                    }
                }
            }
            else if (action == EngineAction.GetInfo)
            {
                using (SqlCeConnection cn = new SqlCeConnection(connectionString))
                {
                    cn.Open();
                    List <KeyValuePair <string, string> > valueList = new List <KeyValuePair <string, string> >();
                    // 3.5 or later only API

                    valueList = cn.GetDatabaseInfo();
                    valueList.Add(new KeyValuePair <string, string>("Database", cn.Database));
                    valueList.Add(new KeyValuePair <string, string>("ServerVersion", cn.ServerVersion));
                    if (System.IO.File.Exists(cn.Database))
                    {
                        System.IO.FileInfo fi = new System.IO.FileInfo(cn.Database);
                        valueList.Add(new KeyValuePair <string, string>("DatabaseSize", fi.Length.ToString(CultureInfo.InvariantCulture)));
                        valueList.Add(new KeyValuePair <string, string>("Created", fi.CreationTime.ToShortDateString() + " " + fi.CreationTime.ToShortTimeString()));
                    }
                    valueList.Add(new KeyValuePair <string, string>(string.Empty, string.Empty));
                    valueList.Insert(0, new KeyValuePair <string, string>("SqlCeCmd", "Database Information"));

                    foreach (KeyValuePair <string, string> pair in valueList)
                    {
                        Console.WriteLine(string.Format(CultureInfo.InvariantCulture, "{0}: {1}", pair.Key, pair.Value));
                    }
                }
            }
            return;
        }
示例#32
0
        public string ChangeDatabasePassword(string connectionString, string password)
        {
            if (password == null)
            {
                password = string.Empty;
            }
            using (SqlCeEngine engine = new SqlCeEngine(connectionString))
            {
                engine.Compact(string.Format("Data Source=;Password={0}", password));
            }
#if V40
            var builder = new SqlCeConnectionStringBuilder(connectionString);
            builder.Password = password;
            return builder.ConnectionString;
#else
            return string.Empty;
#endif
        }
示例#33
0
 /// <summary>
 /// Compacte la base de donnée
 /// </summary>
 /// <param name="compactException"></param>
 /// <returns></returns>
 public bool Compact(out Exception compactException)
 {
     compactException = null;
     GetConnection().Close();
     try
     {
         using (SqlCeEngine engine = new SqlCeEngine(ConnectionString))
         {
             engine.Compact(null);
             return true;
         }
     }
     catch (Exception innerCompactException)
     {
         compactException = innerCompactException;
         IsAvailable = false;
     }
     return false;
 }
示例#34
0
 public void Compact()
 {
     using (var engine = new SqlCeEngine(ConnectionString))
         engine.Compact(null);
 }
示例#35
0
        /// <summary>
        /// Reclaims wasted space in the database and recalculates identity column values.
        /// </summary>
        public void Compact()
        {
            using (var engine = new SqlCeEngine(ConnectionString))
            {
                engine.Compact(null);
            }

            // Same thing using Reflection:
            //object sqlCeEngine = null;
            //try
            //{
            //	sqlCeEngine = SqlCeEngineType.InvokeMember(null, BindingFlags.CreateInstance, null, null, new object[] { ConnectionString });

            //	SqlCeEngineType.InvokeMember("Compact", BindingFlags.InvokeMethod, null, sqlCeEngine, new object[] { null });
            //}
            //catch (TargetInvocationException ex)
            //{
            //	AppEventController.LogError(ex.InnerException ?? ex);
            //	throw;
            //}
            //finally
            //{
            //	if (sqlCeEngine != null)
            //		SqlCeEngineType.InvokeMember("Dispose", BindingFlags.InvokeMethod, null, sqlCeEngine, null);
            //}
        }
示例#36
0
        public static void CompactSqlCe(string connectionString)
        {
            SqlCeEngine engine = new SqlCeEngine(connectionString);

            engine.Compact(connectionString);
        }
示例#37
0
文件: AppData.cs 项目: iyus/scada
        /// <summary>
        /// Упаковать БД
        /// </summary>
        public static bool Compact()
        {
            if (string.IsNullOrEmpty(Conn.ConnectionString))
            {
                return false;
            }
            else
            {
                bool wasConnected = Connected;

                try
                {
                    if (wasConnected)
                        Conn.Close();

                    SqlCeEngine engine = new SqlCeEngine(Conn.ConnectionString);
                    engine.Compact(string.Empty);
                }
                finally
                {
                    if (wasConnected)
                        Conn.Open();
                }

                return true;
            }
        }
示例#38
0
        private void CompactDb()
        {
            try
            {
                main.database.CloseConnection();
                SendMessage("Compacting DB.. vent litt" + Environment.NewLine + "(Dette kan ta en stund)");
                this.Update();
                Log.n("Compacting DB.. vent litt");

                SqlCeEngine eng = new SqlCeEngine(FormMain.SqlConStr);
                eng.Compact(FormMain.SqlConStr);
                //eng.Compact("Data Source=" + Path.Combine(FormMain.settingsPath, @"\db_compacting.sdf"));

                main.database.OpenConnection();

                DBsize();

                Log.n("Compacting av " + FormMain.fileDatabase + " fullført.", Color.Green);
                SendMessage("Ferdig.", Color.Green);

            }
            catch (Exception ex)
            {
                SendMessage("Feil!", Color.Red);
                FormError errorMsg = new FormError("Feil oppstod under database optimalisering", ex);
                errorMsg.ShowDialog(this);
            }
        }
示例#39
0
        private void butChange_Click(object sender, RoutedEventArgs e)
        {
            string oldPwd  = txtOldPwd.Password;
            string newPwd  = txtNewPwd1.Password;
            string newPwd2 = txtNewConfirmPwd.Password;

            if (!newPwd.Equals(newPwd2))
            {
                "PwdNotEqual".GetFromResourece().Notify();
                return;
            }

            try
            {
                #region Close Connection First
                if (null != App.MainEngineer)
                {
                    if (App.MainEngineer.IsOpened)
                    {
                        //If change pwd after the connection opened , it will access violation
                        //so close the Global Connection Frist,
                        //Then after the changing pwd processing ,reopen the global connection
                        App.MainEngineer.Close();
                    }
                }
                #endregion

                #region Change PWD
                using (SqlCeEngine eg = new SqlCeEngine())
                {
                    eg.LocalConnectionString = String.Format("Data Source={0};Password={1}", Db, oldPwd);
                    eg.Compact(string.Format("Data Source={0};Password={1}", Db, newPwd));
                }

                "ChangePwdOK".GetFromResourece().Notify();

                X_NewPwd = newPwd;
                #endregion

                #region Reopen DB
                if (null != App.MainEngineer)
                {
                    App.MainEngineer.CurPwd = newPwd;

                    App.MainEngineer.Open(new LoginInfo_SSCE()
                    {
                        DbName      = App.MainEngineer.CurDatabase,
                        Pwd         = App.MainEngineer.CurPwd,
                        IsEncrypted = true,
                    });
                }
                #endregion

                DialogResult = true;
            }
            catch (SqlCeException ee)
            {
                String.Format("{0}\r\n{1}", ee.Message, "This may the old password you input is not valid").Notify();
                return;
            }
        }
示例#40
0
 public void Compact()
 {
     using (SqlCeEngine engine = new SqlCeEngine(_connString))
         engine.Compact(null);
 }
示例#41
0
        /// <summary>
        /// Imports the data in <paramref name="galleryData"/> to the SQL CE database.
        /// </summary>
        /// <param name="galleryData">An XML-formatted string containing the gallery data. The data must conform to the schema defined in the project for
        /// the data provider's implementation.</param>
        /// <param name="importMembershipData">if set to <c>true</c> import membership data.</param>
        /// <param name="importGalleryData">if set to <c>true</c> import gallery data.</param>
        /// <exception cref="ArgumentNullException">Thrown when <paramref name="galleryData" /> is null.</exception>
        internal static void ImportData(string galleryData, bool importMembershipData, bool importGalleryData)
        {
            if (String.IsNullOrEmpty(galleryData))
                throw new ArgumentNullException("galleryData");

            SqlCeTransaction tran = null;
            SqlCeConnection cn = Util.GetDbConnectionForGallery();
            cn.Open();

            try
            {
                tran = cn.BeginTransaction();

                ClearData(importMembershipData, importGalleryData, cn, tran);

                using (DataSet ds = GenerateDataSet(galleryData))
                {
                    if (importMembershipData)
                    {
                        InsertApplications(ds, cn, tran);

                        InsertRoles(ds, cn, tran);

                        InsertUsers(ds, cn, tran);

                        InsertMembership(ds, cn, tran);

                        InsertUsersInRoles(ds, cn, tran);

                        InsertProfiles(ds, cn, tran);
                    }

                    if (importGalleryData)
                    {
                        InsertGalleries(ds, cn, tran);
                        Pause();

                        InsertAlbums(ds, cn, tran);
                        Pause();

                        InsertGalleryRoles(ds, cn, tran);
                        Pause();

                        InsertRolesAlbums(ds, cn, tran);
                        Pause();

                        InsertMediaObjects(ds, cn, tran);
                        Pause();

                        InsertMediaObjectMetadata(ds, cn, tran);
                        Pause();

                        InsertAppErrors(ds, cn, tran);
                        Pause();

                        InsertAppSettings(ds, cn, tran);
                        Pause();

                        InsertGalleryControlSettings(ds, cn, tran);
                        Pause();

                        InsertGallerySettings(ds, cn, tran);
                        Pause();

                        InsertBrowserTemplates(ds, cn, tran);
                        Pause();

                        InsertMimeTypes(ds, cn, tran);
                        Pause();

                        InsertMimeTypeGalleries(ds, cn, tran);
                        Pause();

                        InsertGalleryProfiles(ds, cn, tran);
                        Pause();
                    }
                }

                tran.Commit();
            }
            catch
            {
                if (tran != null)
                    tran.Rollback();

                throw;
            }
            finally
            {
                if (tran != null)
                    tran.Dispose();

                cn.Close();
            }

            try
            {
                SqlCeEngine engine = new SqlCeEngine(Util.ConnectionString);
                engine.Compact(null);
            }
            catch (SqlCeException)
            {
                // During testing it was observed that calling Compact could result in the error "Could not load database compaction library".
                // But if we pause and try again it succeeds.
                Pause();
                SqlCeEngine engineSecondTry = new SqlCeEngine(Util.ConnectionString);
                engineSecondTry.Compact(null);
            }
        }