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();
}
}
}