クラス化

  MyClass.vb



  
Imports System.Data.Odbc

Public Class MyLib

	Private Shared TargetCsvPath As String

	' ******************************************************
	' サンプルの為に、プロパティ用のメソッドを公開(Public)
	' ******************************************************
	Public Shared Sub GetParam()

		' CSV のパスを引数から取得する
		' 空白を指定したい場合は、"文字列 文字列" のように指定する
		Dim arguments As String() = Environment.GetCommandLineArgs()
		' 引数は一つのみ許可
		if arguments.Length <> 2 then
			Console.WriteLine("引数を指定して下さい")
			Return
		end if

		' 引数からエクスポート対象テーブル名を取得
		MyLib.TargetCsvPath = arguments(1)

	End Sub

	' ******************************************************
	' データ取得のみの ReadOnly
	' ******************************************************
	Public Shared ReadOnly Property CsvPath() As String
		Get
			MyLib.GetParam()
			Return MyLib.TargetCsvPath
		End Get
	End Property

	' ******************************************************
	' エラー処理
	' ******************************************************
	Public Shared Sub ErrorAction( ex As OdbcException )

		Dim CrLf As String = ControlChars.CrLf
		Dim errorMessages As String = ""
		Dim i As Integer

		For i = 0 To ex.Errors.Count - 1
			errorMessages &= _
				"Index #" & i.ToString() & CrLf _
				& "Message: " & ex.Errors(i).Message & CrLf _
				& "NativeError: " & ex.Errors(i).NativeError.ToString() & CrLf _
				& "Source: " & ex.Errors(i).Source & CrLf _
				& "SQL: " & ex.Errors(i).SQLState & CrLf
		Next i

		Console.WriteLine(errorMessages)

	End Sub

End Class

Partial Class MyLib

	' 接続用のオブジェクト
	Private myCon As OdbcConnection
	' 更新用のオブジェクト
	Private execCommand As OdbcCommand

	Private builder As OdbcConnectionStringBuilder

	Private server_string As String
	Private database_string As String
	Private user_string As String
	Private password_string As String

	' ******************************************************
	' 初期処理( コンストラクタ )
	' ******************************************************
	Public Sub New(a As String,b As String,c As String,d As String)

		Me.server_string = a
		Me.database_string = b
		Me.user_string = c
		Me.password_string = d

	End Sub

	' ******************************************************
	' 接続作成
	' ******************************************************
	Function Execute( Query As String ) As Boolean

		' 接続を開く
		Try
			Me.execCommand.CommandText = Query
			Me.execCommand.ExecuteNonQuery()
		Catch ex As OdbcException
			Console.WriteLine("SQL実行エラーです")
			Call MyLib.ErrorAction( ex )
			Return False
		End Try

		Return True

	End Function

	' ******************************************************
	' 接続作成
	' ******************************************************
	Function CreateConnection( ) As Boolean

		' 新しい OdbcConnectionStringBuilder オブジェクトを作成
		Me.builder = New OdbcConnectionStringBuilder()

		' ドライバ文字列をセット ( 波型括弧{} は必要ありません ) 
		' 文字列を正確に取得するには、レジストリ : HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI
		builder.Driver = "MySQL ODBC 5.1 Driver"

		' 接続用のパラメータを追加
		builder.Add("SERVER", Me.server_string)
		builder.Add("DATABASE", Me.database_string)
		builder.Add("UID", Me.user_string)
		builder.Add("PWD", Me.password_string)

		' 内容を確認
		Console.WriteLine(builder.ConnectionString)

		' 新しい OdbcConnection オブジェクトを作成
		Me.myCon = New OdbcConnection()

		' 接続文字列を設定
		Me.myCon.ConnectionString = builder.ConnectionString

		' 接続を開く
		Try
			Me.myCon.Open()
		Catch ex As OdbcException
			Console.WriteLine("接続エラーです")
			' Console.WriteLine( ex.Message )
			Call MyLib.ErrorAction( ex )
			Return False
		End Try

		' 同時に実行用のオブジェクトを作成
		execCommand = New OdbcCommand()
		execCommand.Connection = Me.myCon

		Return True

	End Function

	' ******************************************************
	' 接続終了
	' ******************************************************
	Public Sub EndConnection( )

		' 接続を閉じる
		Me.myCon.Close()

		' OdbcConnection オブジェクトに使用されているすべてのリソースを解放
		Me.myCon.Dispose()

		Me.execCommand.Dispose()

		' 処理終了
		Console.WriteLine("処理が終了しました")

		' 一時停止
		Console.Write("Enterキーを押して下さい : ")
		Console.ReadLine()

	End Sub

End Class
  











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





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

SQLの窓フリーソフト

素材

一般WEBツールリンク

SQLの窓

フリーソフト

JSライブラリ