2025-04-30 17:58:20 +09:00
Imports MySql . Data . MySqlClient
2025-11-21 10:07:27 +09:00
Imports MySqlConnector
2025-04-30 17:58:20 +09:00
Module mySqlModule
Private Const LocalHostIP As String = " 192.168.0.250 "
Private Const UserName As String = " root "
Private Const UserPasswrod As String = " JOMT1646db!! "
Private DataBaseName As String = " jomtOrderTestDB "
Private Conn As String = " Server= " + LocalHostIP + " ;DataBase= " + DataBaseName + " ;user= " + UserName + " ;password= " + UserPasswrod + " ; "
Private sqlCon As New MySqlConnection ( Conn )
Private sqlCmd As New MySqlCommand ( )
Private sqlData As MySqlDataReader '' SQL Server와 연결을 유지한 상태에서 한번에 한 레코드(One Row)씩 데이타를 가져오는데 사용된다
Public sqlDataQuery ( ) As Object
Private Const mainCartDB As String = " jomtTesterDB.jomtCartridgeTbl "
Private Const testCartDB As String = " jomtTesterServerDB.jomtCartridgeTbl "
Private Const mainHIFUDB As String = " jomtTesterDB.jomtHFTestTbl "
Private Const testHIFUDB As String = " jomtTesterServerDB.jomtHFTestTbl "
Private Const mainRFDB As String = " jomtTesterDB.jomtRFTestTbl "
Private Const testRFDB As String = " jomtTesterServerDB.jomtRFTestTbl "
Private Const mainNonTDDB As String = " jomtTesterDB.jomtNonTDTbl "
Private Const testNonTDDB As String = " jomtTesterServerDB.jomtNonTDTbl "
Private Const MainReturnDB As String = " jomtTesterDB.jomtReturnTbl "
Private Const TestReturnDB As String = " jomtTesterServerDB.jomtReturnTbl "
2025-11-21 10:07:27 +09:00
Private Const mainModelInfoDB As String = " jomtTesterDB.jomtModelInfoTbl "
Private Const testModelInfoDB As String = " jomtTesterServerDB.jomtModelInfoTbl "
2025-04-30 17:58:20 +09:00
Public applyCartDB As String = mainCartDB
Public applyHIFUDB As String = mainHIFUDB
Public applyRFDB As String = mainRFDB
Public applyNonTDDB As String = mainNonTDDB
Public ApplyReturnDB As String = MainReturnDB
2025-11-21 10:07:27 +09:00
Public ApplyModelInfoDB As String = mainModelInfoDB
2025-04-30 17:58:20 +09:00
Private Function DBOpen ( ) As Boolean
Try
If sqlCon . State <> ConnectionState . Open Then '' sqlCon.State 의 상태를 나타냄
sqlCon . Open ( )
End If
Return True
Catch ex As Exception
MsgBox ( " MySQL Command Error: " + vbCrLf + Err . Description )
Return False
End Try
End Function
Private Function DBClose ( ) As Boolean
Try
If sqlCon . State = ConnectionState . Open Then
sqlCon . Close ( )
End If
Return True
Catch ex As Exception
MsgBox ( " MySQL Command Error: " + vbCrLf + Err . Description )
Return False
End Try
End Function
Private Function Database_Use ( ) As Boolean
Try
DBOpen ( )
sqlCmd . CommandText = " USE " & DataBaseName & " ; "
sqlCmd . Connection = sqlCon
sqlCmd . ExecuteNonQuery ( )
Return True
Catch ex As Exception
MsgBox ( " MySQL Command Error: " + vbCrLf + Err . Description )
Return False
End Try
End Function
Public Function DBCommand ( cmdStr As String ) As Boolean
Try
Database_Use ( ) '' 연결에 대한 sql문 실행, 명령을 수행하고 영향을 받은 행의 수를 반환하는 메서드, 행 추가나 변경, 삭제 등의 명령을 수행할 때는 명령으로 영향받은 행의 수만 알면 되기 때문에 ExecuteNonQuery 메서드를 사용합니다. 리턴값은 INT32 형
sqlCmd . CommandText = cmdStr
sqlCmd . Connection = sqlCon
sqlCmd . ExecuteNonQuery ( )
DBClose ( )
Return True
Catch ex As Exception
MsgBox ( " MySQL Command Error: " + vbCrLf + Err . Description )
DBClose ( )
Return False
End Try
End
End Function
Public Function DBQueryScalar ( cmdStr As String ) As String
Dim result As String
Try
Database_Use ( )
sqlCmd . CommandText = cmdStr
sqlCmd . Connection = sqlCon
result = sqlCmd . ExecuteScalar ( ) 'SQL 명령을 실행하고, Query 가 리턴하는 첫번째 행의 첫번째 열을 리턴한다. 결과가 딱 1개인 집계함수(count, sum, avg 등)에 사용한다. 반환값은 object 형
Return result
Catch ex As Exception
MsgBox ( " MySQL Command Error: " + vbCrLf + Err . Description )
Return " False "
End Try
End
End Function
Public Function DBQueryReader ( cmdStr As String ) As Integer
Dim FieldCount As Integer
Dim initRun As Boolean = True
Dim DataTypeName As String
Dim TmpData As Object
Dim QueryCount As ULong
Try
Database_Use ( )
sqlCmd . CommandText = cmdStr
sqlCmd . Connection = sqlCon
sqlData = sqlCmd . ExecuteReader '' 어떤 쿼리에서도 적용이 가능하다. SELECT 쿼리를 이용할 경우 해당하는 값들이 DataReader 타입으로 온다. 값을 가져온 후에는 SqlDataReader객체의 read메서드를 통해 값을 읽어올 수 있고 , 사용 후에는 close메서드를 이용하여 실행을 끝내주어야 한다.
FieldCount = sqlData . FieldCount '' 현재 행의 열 수를 가져옵니다.
While ( sqlData . Read ( ) )
If initRun Then
ReDim sqlDataQuery ( FieldCount - 1 ) '' 배열을 모든 필드를 담을 수 있는 양으로 맞추는 기능
initRun = False
Else
ReDim Preserve sqlDataQuery ( UBound ( sqlDataQuery ) + FieldCount ) '' 배열에 저장된 값을 보존하면서 배열의 길이만 재선언
End If
For cnt = 0 To FieldCount - 1
DataTypeName = sqlData . GetDataTypeName ( cnt ) '' 지정된 열의 데이터 형식을 나타내는 문자열을 가져옵니다.
If DataTypeName = " DATE " Then
TmpData = sqlData . GetDateTime ( cnt )
Else
TmpData = sqlData . GetValue ( cnt )
End If
If DBNull . Value . Equals ( TmpData ) Or TmpData . Equals ( String . Empty ) Then
sqlDataQuery ( QueryCount ) = " N "
Else
sqlDataQuery ( QueryCount ) = TmpData
End If
QueryCount += 1
Next
End While
DBClose ( )
Return QueryCount
Catch ex As Exception
MsgBox ( Err . Description )
If sqlCon . State = ConnectionState . Open Then sqlCon . Close ( )
Return 0
End Try
End Function
Public Function getNowDate ( ) As String
Dim dateTime As String
dateTime = Format ( DateAndTime . Year ( Now ) , " 0000 " ) & " - " & Format ( DateAndTime . Month ( Now ) , " 00 " ) & " - " & Format ( DateAndTime . Day ( Now ) , " 00 " )
Return dateTime
End Function
End Module