Microsoft OLE DB Provider |
純正接続のソースコード ( for SQL Server ) |
|
|
' ***********************************************************
' 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
| |
|
|
ODBC( ドライバ名 : SQL Server ) 接続のソースコード |
|
|
' ***********************************************************
' 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
| |
|
|
ODBC( ドライバ名 : SQL Native Client ) 接続のソースコード |
|
|
' ***********************************************************
' 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
| |
|
|
|