コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }