VB.net : SQLExpress : COM を使用した旧式コードの利用

  Interop.ADODB.dll の作成



Ado_sqlexpress

Ado_sqlexpress

Ado_sqlexpress

COM をインポートした Interop.ADODB.dll は、Visual Studio では参照すると自動的に作成されます。
( tlbimp.exe を使用する方法もあります )

実行時には、作成された exe と同じディレクトリに Interop.ADODB.dll を置いて下さい。

SQL による単純な更新も可能ですが、フィールドオブジェクトに値をセットするレコードセットの更新が可能です








  COM を利用してオブジェクト更新を行う



  
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
  










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





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

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ