公開日:2008.06.30
カレーとスクリプトのアツい関係
Hey, Scripting kiddy! は皆様のPCを通じた悩みなどをScript kiddyのスクリプトで解決しようという企画です。
今日のお便りはウガンダさんからです。
「Script kiddyさん、こんにちは。教えてください。VBSでデータベースを生成することはできないのでしょうか?」
ウガンダさん、こんにちは。今日Script kiddyは無性にカレーが食べたくなりました。ところでカレーとScriptには非常に興味深い関係があります。
- なんでもごった混ぜにできること
- とにかく作りはじめれば完成すること
- 労力の割においしいこと
いかがでしょうか。こんなに似通っているとは思いませんでしたね。ただ一つ残念なことは、Scriptではおなかがふくれないことです。現在Script Kiddyはおなかがふくれるスクリプトを研究しています。この研究成果は2034年の春にリリースできる見込みです。
さて、質問に移りましょう。VBSでは、ADODBオブジェクトを介してJetデータベースドライバを制御するのが非常にメジャーです。Jetデータベースドライバはmdbファイルを始め、Excelファイル、CSVファイル、テキストファイルなど、非常にたくさんのフォーマットをあたかもデータベースのように扱える機能を提供してくれます。 しかしADODBではデータベースを生成することはできません。ADOXというオブジェクトを使用します。ADOXはデータベースの定義を変更する機能を持っています。
01: strNewDBName = "curry.mdb"
02: Set objADOX = CreateObject("ADOX.Catalog")
03: rem 空のデータベースを生成します
04: objADOX.Create "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strNewDBName
05: rem テーブルの定義
06: Set objTable = CreateObject("ADOX.Table")
07: With objTable
08: rem テーブル名称
09: .Name = "Table1"
10: rem テーブルのコンテナを指定する
11: .ParentCatalog = objADOX
12: rem カラムの追加
13: rem 整数型
14: Set objPK = .Columns.Append("Column1", 3)
15: rem 文字列型
16: .Columns.Append "Column2", 130, 128
17: rem キー値を設定
18: .keys.Append objPK
19: End With
20: objADOX.Tables.Append objTable
21: rem カタログを閉じます(参照がなくなると閉じられます)
22: Set objADOX = Nothing
さて、いかがでしょうか、あなたはカレーを作り、Script kiddyはスクリプトを作る。こんな美しい光景はありませんね。
それではScript kiddyはタマネギを堀りに行ってきます。
※注 これは、Microsoftがやっている「Hey,scripting guy!」のパクリ企画です。 ご意見、ご要望はお問い合わせよりお願いします。
