FireBirdで新規データベース作成

 FireBirdで新規にデータベースを作成する方法です。CreateDatabaseの後にsql文でデーターベースを作成します。

//データベースファイルが存在しないときは作成(テーブルも同時作成)
        public static void CreateDatabase()
        {
            /*
                基本的に排他処理を行う場合、同一ページに保存されている
                データ全てにロックがかかります。
                そのため、ページサイズの指定が大きいと同じページに配置
                されているデータが存在する確立が高まり、ロック開放待ちを
                強いられる可能性が高まります。

                かといって、ページサイズを小さくするとIOの負荷が高まり、
                検索結果の取得に時間がかかる。
                格納効率の低下により、大きめにスペースを確保する必要がある。
                という弊害があります。


                このことから、
                ・更新がメインのテーブルはサイズを小さめに
                ・参照がメインのテーブルはサイズを大きめに
                という大まかな指標が出せるかと。
             
                         
             
             */


            //データベースの作成
           // FbConnection.CreateDatabase(gro.conString);
            FbConnection.CreateDatabase(gro.conString, pageSize: 8192, overwrite: true);




            //テーブルの作成
            using (var con = new FbConnection(gro.conString))
            using (var cmd = con.CreateCommand())
            {
                try
                {
                    con.Open();

                    // string sql = @"CREATE TABLE BaseTable (id int  PRIMARY KEY, karikata int ,kasikata int ,tekiyou varchar(100) ,inpData DATE,isData  char(1))";

                    string sql = @"CREATE TABLE BaseTable ( id integer generated by default as identity primary key, name varchar(100) , nihongo BLOB SUB_TYPE 1
, eigo  BLOB SUB_TYPE 1 ,inpData DATE,isData  BOOLEAN)";


        


                    cmd.CommandText = sql;
                    cmd.ExecuteNonQuery();




                    //シーケンスの設定
                    //cmd.CommandText = "CREATE SEQUENCE  incNum";// +" INCREMENT BY 1 START WITH 1";
                    //cmd.ExecuteNonQuery();

                }

                finally
                {
                    con.Close();
                }
            }


        }

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です