/// <summary> /// Create a new database and return a connection to /// the database. The database will be overwritten if /// it already exists. /// </summary> /// <param name="database">The path to the database.</param> /// <param name="mode">Creation mode for the database.</param> /// <returns>A new connection to the database.</returns> public virtual Connection CreateDatabase(string database, DatabaseCreationMode mode) { database = Path.GetFullPath(database); lock (this.lockObject) { this.SetGlobalParameters(); this.Tracer.TraceInfo("create database '{0}'", database); // Create the database then open it using (var instance = new Instance(this.GetNewInstanceName())) { SetParametersAndInitializeInstance(database, instance); using (var session = new Session(instance)) { CreateDatabaseGrbit grbit = (DatabaseCreationMode.OverwriteExisting == mode) ? CreateDatabaseGrbit.OverwriteExisting : CreateDatabaseGrbit.None; JET_DBID dbid; Api.JetCreateDatabase(session, database, String.Empty, out dbid, grbit); Api.JetCloseDatabase(session, dbid, CloseDatabaseGrbit.None); Api.JetDetachDatabase(session, database); } } return this.AttachDatabase(database, DatabaseOpenMode.ReadWrite); } }
/// <summary> /// Create a new database and return a connection to /// the database. The database will be overwritten if /// it already exists. /// </summary> /// <param name="database">The path to the database.</param> /// <param name="mode">Creation mode for the database.</param> /// <returns>A new connection to the database.</returns> public virtual Connection CreateDatabase(string database, DatabaseCreationMode mode) { database = Path.GetFullPath(database); lock (this.lockObject) { this.SetGlobalParameters(); this.Tracer.TraceInfo("create database '{0}'", database); // Create the database then open it using (var instance = new Instance(this.GetNewInstanceName())) { SetParametersAndInitializeInstance(database, instance); using (var session = new Session(instance)) { CreateDatabaseGrbit grbit = (DatabaseCreationMode.OverwriteExisting == mode) ? CreateDatabaseGrbit.OverwriteExisting : CreateDatabaseGrbit.None; JET_DBID dbid; Api.JetCreateDatabase(session, database, String.Empty, out dbid, grbit); Api.JetCloseDatabase(session, dbid, CloseDatabaseGrbit.None); Api.JetDetachDatabase(session, database); } } return(this.AttachDatabase(database, DatabaseOpenMode.ReadWrite)); } }
/// <summary> /// Create a new database and return a connection to it. /// </summary> /// <param name="database">The database to create.</param> /// <param name="mode">Creation mode for the database.</param> /// <returns>A connection to the newly created database.</returns> public static Connection CreateDatabase(string database, DatabaseCreationMode mode) { return ConnectionManager().CreateDatabase(database, mode); }
/// <summary> /// Create a new database and return a connection to it. /// </summary> /// <param name="database">The database to create.</param> /// <param name="mode">Creation mode for the database.</param> /// <returns>A connection to the newly created database.</returns> public static Connection CreateDatabase(string database, DatabaseCreationMode mode) { return(ConnectionManager().CreateDatabase(database, mode)); }