|
WSH スケルトン を使用しています
| ' **********************************************
' EXCEL のパスを決定
' **********************************************
' 初期ディレクトリは省略しています
DbPath = Lbox.SaveFileName( "データベース作成", "EXCEL,*.xls" ,, "xls", "MyDB" )
if DbPath = "" then
MsgOk( "パス指定でキャンセルされました " )
quit
end if
' EXCEL ブックが存在している場合はごみ箱へ移動
' (OS の移動確認ダイアログが表示されます)
if Fs.IsFileExist( DbPath ) then
Fs.ShellDelete( DbPath )
end if
' **********************************************
' 接続
' **********************************************
' EXCEL は存在しないパスに接続してもエラーになりません
' が、テーブルを作成しないとブックも作成されません
Result = Database.Connect( 0, DbPath )
if Result <> "" then
MsgOk( Result )
quit
end if
' EXCEL は VARCHAR の桁数指定は無視されます
' INT や DATETIME も NUMBER と DATE に置き換えられます
' VARCHAR では、常に 255 になりますが、それは表示幅で
' 最大長ではありません
' 主キーは指定できません。
Query = "create table [社員テーブル] ("
Query = Query & "[社員コード] VARCHAR(4)"
Query = Query & ",[氏名] VARCHAR(50)"
Query = Query & ",[所属] VARCHAR(4)"
Query = Query & ",[性別] INT"
Query = Query & ",[給与] INT"
Query = Query & ",[手当] INT"
Query = Query & ",[作成日] DATETIME"
Query = Query & ",[更新日] DATETIME"
Query = Query & ")"
' **********************************************
' SQL実行
' **********************************************
' Database オブジェクトはバッチ実行を前提としています
' ので、Query による実行では、成功か失敗かしか解りません。
' エラーの内容が必要な場合は、SQL を テキストファイルに
' 書き込んで Execute( ファイルパス, LOGファイルのパス )
' で実行します(エラーは LOG ファイルに書き込まれます)。
if not Database.Query( Query ) then
MsgOk("社員テーブルの作成に失敗しました")
end if
' **********************************************
' 接続解除
' **********************************************
Database.DisConnect
MsgOk("処理が終了しました")
| |
|
|
|
| ' **********************************************
' MDB のパスを決定
' **********************************************
' 初期ディレクトリは省略しています
DbPath = Lbox.SaveFileName( "データベース作成", "MDB,*.mdb" ,, "mdb", "MyDB" )
if DbPath = "" then
MsgOk( "パス指定でキャンセルされました " )
quit
end if
' MDB が存在している場合はごみ箱へ移動
if Fs.IsFileExist( DbPath ) then
Fs.ShellDelete( DbPath )
end if
' **********************************************
' DB 作成
' **********************************************
' MDB の作成は ADOX を使用します
Set Adox = WScript.CreateObject("ADOX.Catalog")
on error resume next
Adox.Create "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & DbPath & ";"
if Err.Number <> 0 then
MsgOk( Err.Description & ":" & DbPath )
quit
end if
on error goto 0
' **********************************************
' 接続
' **********************************************
Result = Database.Connect( 1, DbPath )
if Result <> "" then
MsgOk( Result )
quit
end if
' MDB の VARCHAR は UNICODE なので、氏名には 50 文字のデータがセット可能です
Query = "create table [社員テーブル] ("
Query = Query & "[社員コード] VARCHAR(4)"
Query = Query & ",[氏名] VARCHAR(50)"
Query = Query & ",[所属] VARCHAR(4)"
Query = Query & ",[性別] INT"
Query = Query & ",[給与] INT"
Query = Query & ",[手当] INT"
Query = Query & ",[作成日] DATETIME"
Query = Query & ",[更新日] DATETIME"
Query = Query & ",primary key([社員コード])"
Query = Query & ")"
' **********************************************
' SQL実行
' **********************************************
if not Database.Query( Query ) then
MsgOk("社員テーブルの作成に失敗しました")
end if
' **********************************************
' 接続解除
' **********************************************
Database.DisConnect
MsgOk("処理が終了しました")
| |
|
|
|
| ' **********************************************
' 接続
' **********************************************
' DB を作成する為に 既存の DB に接続します
Result = Database.Connect( 2, "sv\msde2000,master,sa,password" )
if Result <> "" then
MsgOk( Result )
quit
end if
' **********************************************
' DB 作成
' **********************************************
Query = "sp_helpdb MyDB"
if Database.Query( Query ) then
' MyDB が存在する場合は削除します
Query = "drop database MyDB"
if not Database.Query( Query ) then
MsgOk("MyDB の削除に失敗しました")
Database.DisConnect
quit
end if
end if
' MyDB を作成します
Query = "create database MyDB"
if not Database.Query( Query ) then
MsgOk("MyDB の作成に失敗しました")
Database.DisConnect
quit
end if
' **********************************************
' カレントデータベースを MyDB に変更
' **********************************************
Query = "use MyDB"
if not Database.Query( Query ) then
MsgOk("カレントデータベースを MyDB に変更できません")
Database.DisConnect
quit
end if
' **********************************************
' 社員テーブルの作成
' **********************************************
' NVARCHAR は UNICODE です
Query = "create table [社員テーブル] ("
Query = Query & "[社員コード] VARCHAR(4)"
Query = Query & ",[氏名] NVARCHAR(50)"
Query = Query & ",[所属] VARCHAR(4)"
Query = Query & ",[性別] INT"
Query = Query & ",[給与] INT"
Query = Query & ",[手当] INT"
Query = Query & ",[作成日] DATETIME"
Query = Query & ",[更新日] DATETIME"
Query = Query & ",primary key([社員コード])"
Query = Query & ")"
' **********************************************
' SQL実行
' **********************************************
if not Database.Query( Query ) then
MsgOk("社員テーブルの作成に失敗しました")
end if
' **********************************************
' 接続解除
' **********************************************
Database.DisConnect
MsgOk("処理が終了しました")
| |
|
|
|
| ' **********************************************
' 接続
' **********************************************
' DB を作成する為に 既存の DB に接続します
Result = Database.Connect( 3, "MySQL,mysql,root," )
if Result <> "" then
MsgOk( Result )
quit
end if
' **********************************************
' DB 作成
' **********************************************
' MySQL には 小文字で登録されます
Query = "show databases like 'mydb'"
' この場合、行が返されると true です
if Database.Query( Query ) then
' MyDB が存在する場合は削除します
' SQL 文では大文字小文字は区別されません
Query = "drop database MyDB"
if not Database.Query( Query ) then
MsgOk("MyDB の削除に失敗しました")
Database.DisConnect
quit
end if
end if
' MyDB を作成します
' SQL 文では大文字小文字は区別されません
Query = "create database MyDB"
if not Database.Query( Query ) then
MsgOk("MyDB の作成に失敗しました")
Database.DisConnect
quit
end if
' **********************************************
' カレントデータベースを MyDB に変更
' **********************************************
' SQL 文では大文字小文字は区別されません
Query = "use MyDB"
if not Database.Query( Query ) then
MsgOk("カレントデータベースを MyDB に変更できません")
Database.DisConnect
quit
end if
' **********************************************
' 社員テーブルの作成
' **********************************************
' 漢字 50 文字が入るように VARCHAR(100) にしています
Query = "create table `社員テーブル` ("
Query = Query & "`社員コード` VARCHAR(4)"
Query = Query & ",`氏名` VARCHAR(100)"
Query = Query & ",`所属` VARCHAR(4)"
Query = Query & ",`性別` INT"
Query = Query & ",`給与` INT"
Query = Query & ",`手当` INT"
Query = Query & ",`作成日` DATETIME"
Query = Query & ",`更新日` DATETIME"
Query = Query & ",primary key(`社員コード`)"
Query = Query & ")"
' **********************************************
' SQL実行
' **********************************************
if not Database.Query( Query ) then
MsgOk("社員テーブルの作成に失敗しました")
end if
' **********************************************
' 接続解除
' **********************************************
Database.DisConnect
MsgOk("処理が終了しました")
| |
|
|
|
| ' **********************************************
' 接続
' **********************************************
' DB を作成する為に 既存の DB に接続します
Result = Database.Connect( 5, "PostgreSQL,lightbox,lightbox,lightbox" )
if Result <> "" then
MsgOk( Result )
quit
end if
' **********************************************
' DB 作成
' **********************************************
' PostgreSQL には 小文字で登録されます
Query = "select * from pg_database where datname = 'mydb'"
' この場合、行が返されると true です
if Database.Query( Query ) then
' MyDB が存在する場合は DB を削除します
' データベース名は登録されたとおりに指定します
Query = "drop database mydb"
if not Database.Query( Query ) then
MsgOk("MyDB の削除に失敗しました")
Database.DisConnect
quit
end if
end if
' MyDB を作成します
Query = "create database MyDB"
if not Database.Query( Query ) then
MsgOk("MyDB の作成に失敗しました")
Database.DisConnect
quit
end if
' **********************************************
' カレントデータベースを MyDB に変更
' **********************************************
' いったん接続解除します
Database.DisConnect
' 作成した DB に接続します
' データベース名は登録されたとおりに指定します
Result = Database.Connect( 5, "PostgreSQL,mydb,lightbox,lightbox" )
if Result <> "" then
MsgOk( Result & vbCrLf & "カレントデータベースを MyDB に変更できません" )
quit
end if
' **********************************************
' 社員テーブルの作成
' **********************************************
' DATETIME という型はありませんので DATE で代用します
' 厳密にコンバートするならば、TIMESTAMP を使用します
Query = "create table ""社員テーブル"" ("
Query = Query & """社員コード"" VARCHAR(4)"
Query = Query & ",""氏名"" VARCHAR(100)"
Query = Query & ",""所属"" VARCHAR(4)"
Query = Query & ",""性別"" INT"
Query = Query & ",""給与"" INT"
Query = Query & ",""手当"" INT"
Query = Query & ",""作成日"" DATE"
Query = Query & ",""更新日"" DATE"
Query = Query & ",primary key(""社員コード"")"
Query = Query & ")"
' **********************************************
' SQL実行
' **********************************************
if not Database.Query( Query ) then
MsgOk("社員テーブルの作成に失敗しました")
end if
' **********************************************
' 接続解除
' **********************************************
Database.DisConnect
MsgOk("処理が終了しました")
| |
|
|
|