DB 作成

  Excel



Excel(*.xls) は 既存の Excel または MDB に Microsoft.Jet.OLEDB.4.0 で接続されている場合、接続されている Excel に存在するテーブルを転送する事によって作成する事ができますが、転送されたテーブルは完全な削除ができないので注意する必要があります

※ ADO からテーブルの定義を削除する事はできますが、実体としてのシートは削除されません。
※ Excel.Application を使用すれば シートも削除 できますが、Excel がインストールされていなければなりません。
※ ( 但し、Excel の Book には、少なくとも一つのシートが必要なので、この処理では使用できません )

接続文字列の IMEX=1 を省くと、ブックが存在しなくても接続可能です
CREATE 文でテーブルを作成すると、ブックが作成されます

IMEX=1 そのものの意味については、Microsoft の こちら に書かれていますが、Excel で作成されたデータを ADO からアクセスする時に重要になります。

何故存在チェックをしたりしなかったりするのかは解りませんが、Excel を純粋に DB として扱うのは稀なので、IMEX=1 を記述したパターンを紹介しています。

  
strTarget = "C:\TEMP\excel\Book1.xls"

ConnectionString = _
	"Provider=Microsoft.Jet.OLEDB.4.0;" & _
	"Data Source=" & strTarget & ";" & _
	"Extended Properties=""Excel 8.0;IMEX=1;"""

on error resume next
Cn.Open ConnectionString
if Err.Number <> 0 then
	WScript.Echo Err.Description
	Wscript.Quit
end if
on error goto 0

Query = "select * into [Excel 8.0;DATABASE=C:\TEMP\excel\New.xls].[dummy]"
Query = Query & " from [社員マスタ] where 0"

Cn.Execute Query
Cn.Execute "drop table [Excel 8.0;DATABASE=C:\TEMP\excel\New.xls].[dummy]"

Cn.Close
  

where 0 という条件によって、データの無いテーブルが dummy として作成されます。
dummy の定義は 社員マスタ と同じで、ADO 経由で drop table 文で削除する事によってdummy の定義は失われ、dummy という名前だけが残ります

これによって、[dummy] というテーブルにはアクセスできなくなります(削除される)が、[dummy$] というテーブル(ワークシート)が残っており、アクセスも可能です。



  MDB



この処理で、Set Adox = Nothing は重要です。この処理が実行されないと、プログラムが終了されるまで .ldb が作成された状態になります

  
strTarget = "C:\TEMP\MDB\New.mdb"

ConnectionString = _
	"Provider=Microsoft.Jet.OLEDB.4.0;" & _
	"Data Source=" & strTarget & ";"

on error resume next
Adox.Create ConnectionString
if Err.Number <> 0 then
	WScript.Echo Err.Description
	WScript.Quit
end if
on error goto 0

Set Adox = Nothing
  



  SQLServer

ADO で接続し、create database 文を実行します

権限のあるユーザで接続して下さい。また、システムデータベースとして master が存在するので明示する場合はそれを利用しますが、データベース作成では Initial Catalog を省略してもかまいません。

  
strServer = "sv"
strInstance = "MSDE2000"
strTarget = strServer & "\" & strInstance
strDB = "master"
strUser = "sa"
strPass = "password"

ConnectionString = _
	"Provider=SQLOLEDB;" & _
	"Data Source=" & strTarget & ";" & _
	"Initial Catalog=" & strDB & ";" & _
	"User ID=" & strUser & ";" & _
	"Password=" & strPass & ";"

on error resume next
Cn.Open ConnectionString
if Err.Number <> 0 then
	WScript.Echo Err.Description
	Wscript.Quit
end if
on error goto 0

Query = "create database newdb"
Cn.Execute Query

Cn.Close
  



  MySQL

ADO で接続し、create database 文を実行します

権限のあるユーザで接続して下さい。また、システムデータベースとして mysql が存在するので明示する場合はそれを利用しますが、データベース作成では DATABASE を省略してもかまいません。

  
strTarget = "MySQL"
strDB = "mysql"
strUser = "root"
strPass = ""

ConnectionString = _
	"Provider=MSDASQL" & _
	";DSN=" & strTarget & _
	";DATABASE=" & strDB & _
	";UID=" & strUser & _ 
	";PWD=" & strPass & _ 
	";" 

on error resume next
Cn.Open ConnectionString
if Err.Number <> 0 then
	WScript.Echo Err.Description
	Wscript.Quit
end if
on error goto 0

Query = "create database newdb"
Cn.Execute Query

Cn.Close
  



  PostgreSQL

ADO で接続し、create database 文を実行します

権限のあるユーザで接続して下さい。

  
strTarget = "PostgreSQL"
strUser = "lightbox"
strPass = "lightbox"

ConnectionString = _
	"Provider=MSDASQL" & _
	";DSN=" & strTarget & _
	";UID=" & strUser & _ 
	";PWD=" & strPass & _ 
	";" 

on error resume next
Cn.Open ConnectionString
if Err.Number <> 0 then
	WScript.Echo Err.Description
	Wscript.Quit
end if
on error goto 0

Query = "create database newdb"
Cn.Execute Query

Cn.Close
  



  Oracle

Oracle での DB 作成は ユーザ作成です。ADO で接続して一連の SQL を実行する必要があります

実行する SQL は こちら を参照して下さい










  infoboard   管理者用   
このエントリーをはてなブックマークに追加




SQLの窓  天気  IT用語辞典
Yahoo!ニュース  マルチ辞書
PHP マニュアル  Google URL短縮 


フリーフォントWEBサービス
SQLの窓WEBサービス

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ