' *********************************************************** ' SQLExpress 2005 / OLE DB / 純正接続 ' ADO : 読み込みのみ ' FileSystemObject : CSV出力 ' *********************************************************** strTarget = "NIGHT_TCP" ' 別名 strDB = "lightbox" strUser = "sa" strPass = "passwordpassword" ' *********************************************************** ' ADO + FileSystemObject ' *********************************************************** Set Cn = CreateObject( "ADODB.Connection" ) Set Rs = CreateObject( "ADODB.Recordset" ) Set Fso = CreateObject( "Scripting.FileSystemObject" ) ' ********************************************************** ' 接続文字列 ' ********************************************************** ConnectionString = _ "Provider=SQLOLEDB;" & _ "Data Source=" & strTarget & ";" & _ "Initial Catalog=" & strDB & ";" & _ "User ID=" & strUser & ";" & _ "Password=" & strPass & ";" ' ********************************************************** ' 接続 ' クライアントカーソル(3)を使う事が推奨されます ' ********************************************************** Cn.CursorLocation = 3 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 * from [社員マスタ]" ' ********************************************************** ' レコードセット ' オブジェクト更新時はレコード単位の共有的ロック(3)を ' 使用します( デフォルトでは更新できません ) ' ********************************************************** 'Rs.LockType = 3 on error resume next Rs.Open Query, Cn if Err.Number <> 0 then Cn.Close Wscript.Echo Err.Description Wscript.Quit end if on error goto 0 ' ********************************************************** ' 出力ファイルオープン ' ********************************************************** Set Csv = Fso.CreateTextFile( "社員マスタ.csv", True ) ' ********************************************************** ' タイトル出力 ' ********************************************************** Buffer = "" For i = 0 to Rs.Fields.Count - 1 if Buffer <> "" then Buffer = Buffer & "," end if Buffer = Buffer & Rs.Fields(i).Name Next Csv.WriteLine Buffer ' ********************************************************** ' データ出力 ' ********************************************************** Do While not Rs.EOF Buffer = "" For i = 0 to Rs.Fields.Count - 1 if Buffer <> "" then Buffer = Buffer & "," end if Buffer = Buffer & Rs.Fields(i).Value Next Csv.WriteLine Buffer Rs.MoveNext Loop ' ********************************************************** ' ファイルクローズ ' ********************************************************** Csv.Close ' ********************************************************** ' レコードセットクローズ ' ********************************************************** Rs.Close ' ********************************************************** ' 接続解除 ' ********************************************************** Cn.Close
' *********************************************************** ' SQLExpress 2005 / ODBC / {SQL Server} ' ADO : 文字列更新 ' FileSystemObject : CSV出力 ' *********************************************************** strDriver = "{SQL Server}" strTarget = "NIGHT_TCP" ' 別名 strDB = "lightbox" strUser = "sa" strPass = "passwordpassword" ' *********************************************************** ' ADO + FileSystemObject ' *********************************************************** Set Cn = CreateObject( "ADODB.Connection" ) Set Rs = CreateObject( "ADODB.Recordset" ) Set Fso = CreateObject( "Scripting.FileSystemObject" ) ' ********************************************************** ' 接続文字列 ' ********************************************************** ConnectionString = _ "Provider=MSDASQL;" & _ "Driver=" & strDriver & ";" & _ "SERVER=" & strTarget & ";" & _ "DATABASE=" & strDB & ";" & _ "UID=" & strUser & ";" & _ "PWD=" & strPass & ";" ' ********************************************************** ' 接続 ' クライアントカーソル(3)を使う事が推奨されます ' ********************************************************** Cn.CursorLocation = 3 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 * from [社員マスタ]" ' ********************************************************** ' レコードセット ' オブジェクト更新時はレコード単位の共有的ロック(3)を ' 使用します( デフォルトでは更新できません ) ' ※ デフォルトでも SQLによる更新は可能です ' ********************************************************** 'Rs.LockType = 3 on error resume next Rs.Open Query, Cn if Err.Number <> 0 then Cn.Close Wscript.Echo Err.Description Wscript.Quit end if on error goto 0 ' ********************************************************** ' 出力ファイルオープン ' ********************************************************** Set Csv = Fso.CreateTextFile( "社員マスタ.csv", True ) ' ********************************************************** ' タイトル出力 ' ********************************************************** Buffer = "" ' 社員コードと氏名のみ For i = 0 to 1 if Buffer <> "" then Buffer = Buffer & "," end if Buffer = Buffer & Rs.Fields(i).Name Next Csv.WriteLine Buffer ' ********************************************************** ' データ出力 ' ********************************************************** UpdateCnt = 0 Do While not Rs.EOF Buffer = "" Buffer = Buffer & Rs.Fields("社員コード").Value Buffer = Buffer & "," & Rs.Fields("氏名").Value ' 更新 strDay = (UpdateCnt mod 10) + 1 Query = "update [社員マスタ] set [生年月日] = '2005/01/0" & strDay & "'" Query = Query & " where 社員コード = '" Query = Query & Rs.Fields("社員コード").Value Query = Query & "'" Cn.Execute( Query ) Csv.WriteLine Buffer Rs.MoveNext UpdateCnt = UpdateCnt + 1 Loop ' ********************************************************** ' ファイルクローズ ' ********************************************************** Csv.Close ' ********************************************************** ' レコードセットクローズ ' ********************************************************** Rs.Close ' ********************************************************** ' 接続解除 ' ********************************************************** Cn.Close
' *********************************************************** ' SQLExpress 2005 / ODBC / {SQL Native Client} ' ADO : オブジェクト更新 ' Cn.CursorLocation = 3 ' Rs.LockType = 3 ' *********************************************************** strDriver = "{SQL Native Client}" strTarget = "NIGHT_TCP" ' 別名 strDB = "lightbox" strUser = "sa" strPass = "passwordpassword" ' *********************************************************** ' ADO + FileSystemObject ' *********************************************************** Set Cn = CreateObject( "ADODB.Connection" ) Set Rs = CreateObject( "ADODB.Recordset" ) ' ********************************************************** ' 接続文字列 ' ********************************************************** ConnectionString = _ "Provider=MSDASQL;" & _ "Driver=" & strDriver & ";" & _ "SERVER=" & strTarget & ";" & _ "DATABASE=" & strDB & ";" & _ "UID=" & strUser & ";" & _ "PWD=" & strPass & ";" ' ********************************************************** ' 接続 ' クライアントカーソル(3)を使う事が推奨されます ' この処理では必須です ' ********************************************************** Cn.CursorLocation = 3 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 * from [社員マスタ]" ' ********************************************************** ' レコードセット ' ODBC 接続のオブジェクト更新では、 ' レコード単位の共有的ロック(3)を使用しています ' デフォルトでは更新できません ' ※ デフォルトでも SQLによる更新は可能です ' ********************************************************** Rs.LockType = 3 on error resume next Rs.Open Query, Cn if Err.Number <> 0 then Cn.Close Wscript.Echo Err.Description Wscript.Quit end if on error goto 0 ' ********************************************************** ' 更新 ' ********************************************************** dt = CDate("2005/01/01") Do While not Rs.EOF ' 更新 Rs.Fields("生年月日").Value = dt Rs.Update dt = dt + 1 Rs.MoveNext Loop ' ********************************************************** ' レコードセットクローズ ' ********************************************************** Rs.Close ' ********************************************************** ' 接続解除 ' ********************************************************** Cn.Close
' ************************************************ ' 更新処理 ' ************************************************ function UpdateData() Query = "select * from 更新テーブル" Rs.LockType = 3 Rs.Open Query, Cn if Rs.EOF then Rs.AddNew Rs.Fields( "コード" ).Value = "0001" end if Rs.Fields( "名称" ).Value = "名称" Rs.Fields( "数値" ).Value = 100 Rs.Fields( "日付" ).Value = Empty Rs.Update end function