public void TestDataDirectory() { string test = @"Data Source=|DataDirectory|\Chinook40.sdf"; var helper = new SqlCeHelper4(); string path = helper.PathFromConnectionString(test); Assert.IsFalse(path.Contains("DataDirectory")); }
public void UpgradeTo40(object sender, ExecutedRoutedEventArgs e) { if (EnvDteHelper.ShowMessageBox("This will upgrade the 3.5 database to 4.0 format, and leave a renamed backup of the 3.5 database. Do you wish to proceed?", OLEMSGBUTTON.OLEMSGBUTTON_YESNO, OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_SECOND, OLEMSGICON.OLEMSGICON_QUERY) == System.Windows.Forms.DialogResult.No) { return; } if (!Helpers.RepositoryHelper.IsV40Installed()) { EnvDteHelper.ShowError("The SQL Server Compact 4.0 runtime is not installed, cannot upgrade. Install the 4.0 runtime."); return; } try { var databaseInfo = ValidateMenuInfo(sender); if (databaseInfo == null) { return; } var helper = new SqlCeHelper4(); var path = helper.PathFromConnectionString(databaseInfo.DatabaseInfo.ConnectionString); if (!File.Exists(path)) { EnvDteHelper.ShowError(string.Format("Database file in path: {0} could not be found", path)); return; } var path1 = Path.GetDirectoryName(path); if (path1 != null) { var newFile = Path.Combine(path1, Path.GetFileNameWithoutExtension(path) + "_35" + Path.GetExtension(path)); if (File.Exists(newFile)) { for (var i = 0; i < 100; i++) { newFile = Path.Combine(path1, Path.GetFileNameWithoutExtension(newFile) + "_" + i.ToString() + "." + Path.GetExtension(newFile)); if (!File.Exists(newFile)) { break; } } } if (File.Exists(newFile)) { EnvDteHelper.ShowError("Could not create unique file name..."); return; } File.Copy(path, newFile); helper.UpgradeTo40(databaseInfo.DatabaseInfo.ConnectionString); EnvDteHelper.ShowMessage(string.Format("Database upgraded, version 3.5 database backed up to: {0}", newFile)); } if (databaseInfo.DatabaseInfo.FromServerExplorer) { DataConnectionHelper.RemoveDataConnection(package, databaseInfo.DatabaseInfo.ConnectionString, new Guid(Resources.SqlCompact35Provider)); } else { DataConnectionHelper.RemoveDataConnection(databaseInfo.DatabaseInfo.ConnectionString); } DataConnectionHelper.SaveDataConnection(databaseInfo.DatabaseInfo.ConnectionString, DatabaseType.SQLCE40, package); var control = _parentWindow.Content as ExplorerControl; if (control != null) { control.BuildDatabaseTree(); } DataConnectionHelper.LogUsage("DatabaseUpgrade40"); } catch (Exception ex) { DataConnectionHelper.SendError(ex, DatabaseType.SQLCE35); } }