| Imports System.IO
Imports System.Text
Module Module1
Sub Main()
' ***********************************************************
' SQLExpress 2005 / OLE DB / 純正接続
' ADO : 読み込みのみ
' StreamWriter : CSV出力
' ***********************************************************
Dim strTarget As String = "NIGHT_TCP" ' 別名
Dim strDB As String = "lightbox"
Dim strUser As String = "sa"
Dim strPass As String = "passwordpassword"
Dim myError As String
' ***********************************************************
' ADO
' ***********************************************************
Dim Cn As ADODB.Connection = New ADODB.Connection()
Dim Rs As ADODB.Recordset = New ADODB.Recordset()
' **********************************************************
' 接続文字列
' **********************************************************
Dim ConnectionString As String = _
"Provider=SQLOLEDB;" & _
"Data Source=" & strTarget & ";" & _
"Initial Catalog=" & strDB & ";" & _
"User ID=" & strUser & ";" & _
"Password=" & strPass & ";"
' **********************************************************
' 接続
' クライアントカーソル(3)を使う事が推奨されます
' **********************************************************
Cn.CursorLocation = 3
Try
Cn.Open(ConnectionString)
Catch ex As Exception
myError = "接続エラーです" + ControlChars.CrLf
myError += "接続文字列=" + ConnectionString + ControlChars.CrLf
myError += "システムのメッセージ=" + ex.Message + ControlChars.CrLf
Console.Out.WriteLine(myError)
Return
End Try
Dim Query As String = "select * from [社員マスタ]"
' **********************************************************
' レコードセット
' オブジェクト更新時はレコード単位の共有的ロック(3)を
' 使用します( デフォルトでは更新できません )
' **********************************************************
Rs.LockType = 3
Try
Rs.Open(Query, Cn)
Catch ex As Exception
myError = "接続エラーです" + ControlChars.CrLf
myError += "接続文字列=" + ConnectionString + ControlChars.CrLf
myError += "システムのメッセージ=" + ex.Message + ControlChars.CrLf
Console.Out.WriteLine(myError)
Return
End Try
' **********************************************************
' 出力ファイルオープン
' **********************************************************
Dim WriteFile As StreamWriter = New StreamWriter( _
"社員マスタ.csv", _
False, _
Encoding.GetEncoding(932) _
)
' **********************************************************
' タイトル出力
' **********************************************************
Dim Buffer As String = ""
Dim i As Integer
For i = 0 To Rs.Fields.Count - 1
If Buffer <> "" Then
Buffer = Buffer & ","
End If
Buffer = Buffer & Rs.Fields(i).Name
Next
WriteFile.WriteLine(Buffer)
' **********************************************************
' データ出力
' **********************************************************
Dim dt As DateTime = New Date(2005, 1, 1)
' dt = Date.Parse("2005/01/10")
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
WriteFile.WriteLine(Buffer)
Rs.Fields("生年月日").Value = dt
Rs.Update()
dt = dt.AddDays(1)
Rs.MoveNext()
Loop
' **********************************************************
' ファイルクローズ
' **********************************************************
WriteFile.Close()
WriteFile.Dispose()
' **********************************************************
' レコードセットクローズ
' **********************************************************
Rs.Close()
' **********************************************************
' 接続解除
' **********************************************************
Cn.Close()
End Sub
End Module
| |