SQL-DMO CSV入出力

  出力



  
Const SQLDMODataFile_CommaDelimitedChar = 1
Const SQLDMODataFile_TabDelimitedChar = 2
Const SQLDMODataFile_SpecialDelimitedChar = 3

TargetFile = "c:\tmp\商品マスタ.csv"

' オブジェクト作成
Set objServer = CreateObject("SQLDMO.SQLServer")
Set objBcp = CreateObject("SQLDMO.BulkCopy")
 
' BCP パラメータセット
objBcp.DataFileType = SQLDMODataFile_CommaDelimitedChar
' フィールド区切り文字と行終端文字を変更したい場合は以下
' objBcp.DataFileType = SQLDMODataFile_SpecialDelimitedChar
' objBcp.ColumnDelimiter = "\"
' objBcp.RowDelimiter = vbLf

objBcp.DataFilePath = TargetFile
 
' 接続
' 以下は別名。正確には、PC名\インスタンス名
Call objServer.Connect( "lbox", "sa", "password" )
 
' 対象オブジェクト 
Set objDatabase = objServer.Databases("lightbox")
Set objTable = objDatabase.Tables( "[商品マスタ]" )
 
' 作成
nRow = objTable.ExportData( objBcp )
' 入力は 以下
' nRow = objTable.ImportData( objBcp )

' 切断
Call objServer.DisConnect()

Wscript.Echo nRow & " 行のデータが出力されました"
  



  VIEW を一時的に使った、SELECT 文による出力



以下の方法では、ORDER BY は使用できません。
必要な場合は、select 〜 into を ExecuteImmediate で実行して、
作成されたテーブルより取得してからそのテーブルを削除すると良いでしょう。

  
Const SQLDMODataFile_CommaDelimitedChar = 1
Const SQLDMODataFile_TabDelimitedChar = 2
Const SQLDMODataFile_SpecialDelimitedChar = 3

TargetFile = "c:\tmp\社員マスタ.csv"

' オブジェクト作成
Set objServer = CreateObject("SQLDMO.SQLServer")
Set objBcp = CreateObject("SQLDMO.BulkCopy")
 
' BCP パラメータセット
objBcp.DataFileType = SQLDMODataFile_CommaDelimitedChar
' フィールド区切り文字と行終端文字を変更したい場合は以下
' objBcp.DataFileType = SQLDMODataFile_SpecialDelimitedChar
' objBcp.ColumnDelimiter = "\"
' objBcp.RowDelimiter = vbLf

objBcp.DataFilePath = TargetFile
 
' 接続
' 以下は別名。正確には、PC名\インスタンス名
Call objServer.Connect( "lbox", "sa", "password" )
 
' 対象オブジェクト 
Set objDatabase = objServer.Databases("lightbox")

' VIEW 作成
Set objView = CreateObject("SQLDMO.View")
Set TypeLib = CreateObject("Scriptlet.TypeLib")
strGuid  =Replace(TypeLib.Guid,"{", "" )
strGuid  =Replace(strGuid,"}", "" )
strGuid  =Replace(strGuid,"-", "" )
objView.Name = "TEMP_" & strGuid
objView.Text = "create VIEW " & objView.Name & " As select * from [社員マスタ] where 性別 = 0"
objDatabase.Views.Add(objView)
 
' 作成
nRow = objView.ExportData( objBcp )

' VIEW 削除
objView.Remove()

' 切断
Call objServer.DisConnect()

Wscript.Echo nRow & " 行のデータが出力されました"
  










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





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

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ