public override void OpenDatabase() { //TODO: Check for password protected databases //TODO: Check for databases attached to workgroup database string fullFileName = System.IO.Path.GetFullPath(FileName); dao.Database db = Application.DBEngine.OpenDatabase(System.IO.Path.GetFullPath(fullFileName)); try { if (double.Parse(db.Version, System.Globalization.CultureInfo.InvariantCulture) < 4.0) { throw new Exception(Properties.ImportRes.InvalidFileFormat); } else { string accVersion = db.Properties["AccessVersion"].Value.ToString(); accVersion = accVersion.Substring(0, accVersion.IndexOf('.')); if (int.Parse(accVersion) < 9) { throw new Exception(Properties.ImportRes.InvalidFileFormat); } } } finally { db.Close(); } Application.OpenCurrentDatabase(fullFileName); }
public override void CreateDatabase(Dictionary <string, object> databaseProperties) { //Could call to Application.NewCurrentDatabase, but this method has no options //TODO: Add support for Access Version, ¿password, encryption? Locales databaseLocales = new Locales(); string collating = databaseProperties["CollatingOrder"].ToString().Substring(2); dao.Database db = Application.DBEngine.CreateDatabase(FileName, databaseLocales[collating]); db.Close(); System.Runtime.InteropServices.Marshal.ReleaseComObject(db); Application.OpenCurrentDatabase(FileName); }