WSH から mdbファイル(MS Access database file)を作成する
VBScript の例は一杯あったけど、Javascript の例が少ないので書いてみた。
ネタ元:mdbファイルの作成 - Fioの素敵な日々
Javascript(WSH)の場合
var db = ActiveXObject("ADOX.Catalog"); db.create( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=myFirst.mdb;");
実行結果(見やすいように改行入れて整形)
Provider=Microsoft.Jet.OLEDB.4.0;Password=""; User ID=Admin; Data Source=myFirst.mdb; Mode=Share Deny None;Extended Properties=""; Jet OLEDB:System database=""; Jet OLEDB:Registry Path=""; Jet OLEDB:Database Password=""; Jet OLEDB:Engine Type=5; Jet OLEDB:Database Locking Mode=1; Jet OLEDB:Global Partial Bulk Ops=2; Jet OLEDB:Global Bulk Transactions=1; Jet OLEDB:New Database Password=""; Jet OLEDB:Create System Database=False; Jet OLEDB:Encrypt Database=False; Jet OLEDB:Don't Copy Locale on Compact=False; Jet OLEDB:Compact Without Replica Repair=False; Jet OLEDB:SFP=False
後始末を追加
var db = ActiveXObject("ADOX.Catalog"); db.create( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=myFirst.mdb;"); db=null;
パラメータを変数に入れて
var db = ActiveXObject("ADOX.Catalog"); var fileNameStr = myFirst.mdb; var connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileNameStr +";"; db.create( connStr ); db=null;
別の方法(もっと簡単)
ネタ元:5.4 新しいMDBファイルを作る
var oMDB = new ActiveXObject("Access.Application"); // MS Access を visible にして作業する場合、以下の行をコメントアウト // oMDB.Visible = True; oMDB.NewCurrentDatabase("test.mdb"); // database の作成 \<user name>\My Documents\test.mdb が作られる … oMDB.CloseCurrentDatabase(); // database を閉じる oMDB = null;
このままだと、DB の中身を弄れないので DB オブジェクトも開く
ネタ元:5.5 DBオブジェクトを作成する
var oMDB = new ActiveXObject("Access.Application"); oMDB.OpenCurrentDatabase("test.mdb"); // database の作成 \<user name>\My Documents\test.mdb が作られる var objDB = oMDB.CurrentDb(); // database object の作成 … objDB.Close(); // database obejct の後始末 oMDB.CloseCurrentDatabase(); // database を閉じる objDB = null; // dispose oMDB = null; // dispose
テーブルまで作成するなら
ネタ元:VBScriptでMS-Accessファイル(mdb)生成|SHADOW RUN
注意)先に出てくるのは DAO の例、ADO は後ろの方。
script は後で(つーか普通に SQLコマンドで CREATE するだけなので、もしかしたらこのまま放置かも)。
※ 2010/06/03 補足:ADOX を使うのがミソ⇒CREATE