Exemplo n.º 1
0
        /// <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));
            }
        }
Exemplo n.º 2
0
 public void CreateDatabase(string connect, CreateDatabaseGrbit grbit)
 {
     if (JetDbid != JET_DBID.Nil)
     {
         throw new ApplicationException("Only one database may be opened in an EsentSession");
     }
     JET_DBID dbid;
     Api.JetCreateDatabase(_session, Database.DatabasePath, connect, out dbid, grbit);
     JetDbid = dbid;
 }
Exemplo n.º 3
0
 /// <summary>
 /// Creates and attaches a database file.
 /// </summary>
 /// <param name="sesid">The session to use.</param>
 /// <param name="database">The path to the database file to create.</param>
 /// <param name="dbid">Returns the dbid of the new database.</param>
 /// <param name="grbit">Database creation options.</param>
 public static void CreateDatabase(JET_SESID sesid, string database, out JET_DBID dbid, CreateDatabaseGrbit grbit)
 {
     Api.JetCreateDatabase(sesid, database, null, out dbid, grbit);
 }
Exemplo n.º 4
0
 /// <summary>
 /// Creates and attaches a database file with a maximum database size specified.
 /// <seealso cref="JetAttachDatabase2"/>.
 /// </summary>
 /// <param name="sesid">The session to use.</param>
 /// <param name="database">The path to the database file to create.</param>
 /// <param name="maxPages">
 /// The maximum size, in database pages, of the database. Passing 0 means there is
 /// no enforced maximum.
 /// </param>
 /// <param name="dbid">Returns the dbid of the new database.</param>
 /// <param name="grbit">Database creation options.</param>
 public static void JetCreateDatabase2(JET_SESID sesid, string database, int maxPages, out JET_DBID dbid, CreateDatabaseGrbit grbit)
 {
     Api.Check(Impl.JetCreateDatabase2(sesid, database, maxPages, out dbid, grbit));            
 }
Exemplo n.º 5
0
 /// <summary>
 /// Creates and attaches a database file.
 /// </summary>
 /// <param name="sesid">The session to use.</param>
 /// <param name="database">The path to the database file to create.</param>
 /// <param name="connect">The parameter is not used.</param>
 /// <param name="dbid">Returns the dbid of the new database.</param>
 /// <param name="grbit">Database creation options.</param>
 public static void JetCreateDatabase(JET_SESID sesid, string database, string connect, out JET_DBID dbid, CreateDatabaseGrbit grbit)
 {
     Api.Check(Impl.JetCreateDatabase(sesid, database, connect, out dbid, grbit));
 }
Exemplo n.º 6
0
 public static void CreateDatabase(this IEsentSession session, CreateDatabaseGrbit grbit)
 {
     session.CreateDatabase(null, grbit);
 }
Exemplo n.º 7
0
 /// <summary>
 /// Creates and attaches a database file.
 /// </summary>
 /// <param name="sesid">The session to use.</param>
 /// <param name="database">The path to the database file to create.</param>
 /// <param name="dbid">Returns the dbid of the new database.</param>
 /// <param name="grbit">Database creation options.</param>
 public static void CreateDatabase(JET_SESID sesid, string database, out JET_DBID dbid, CreateDatabaseGrbit grbit)
 {
     Api.JetCreateDatabase(sesid, database, null, out dbid, grbit);
 }