Files
Client/Server/ToolProject/RCMS_Tool/DBConn.vb
LGram16 dd97ddec92 Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code:
- Client: Game client source (moved to Client/Client/)
- Server: Game server source
- GameTools: Development tools
- CryptoSource: Encryption utilities
- database: Database scripts
- Script: Game scripts
- rylCoder_16.02.2008_src: Legacy coder tools
- GMFont, Game: Additional resources

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 20:17:20 +09:00

476 lines
16 KiB
VB.net

Imports System.Net.Sockets
Imports System.IO
Imports System.Text
Module DBConn
''직접 데이터베이스에 접속할때 쓴다.
'Public RYL_Conn As String = "server=192.168.1.55;database=Gama;uid=sa;pwd=1234"
'Public IDBAgent As New DBAgent()
'툴사용자 지정
Public AdminKind As String
Public IClientSocket As New ClientSocket()
Public ds As New DataSet()
'아이템배열얻기
Public ItemArray() As Byte
'TableIndex
Public Const AdminTableIndex As Int32 = 0
Public Const CharItemListIndex As Int32 = 1
Public Const CharRestraintIndex As Int32 = 2
Public Const CurrentUserIndex As Int32 = 3
Public Const LastUserIndex As Int32 = 4
'서버리스트
Public Const Test As String = "테스트"
Public Const Solpis As String = "솔피스티아"
Public Const Karte As String = "카르테란트"
Public Const Iranshya As String = "이란샤"
Public Const Hiland As String = "하이랜드"
Public Const Aldia As String = "알디아"
Public Const Yunite As String = "유니테"
'국가코드
Public Const Code As Integer = 949
Public SERVER As String
Public CHARNAME As String
'CharItemFormType = 1 --edit
'CharItemFormType = 0 --create
Public CharItemFormType As Boolean
Private Structure myData
Dim ColumnName As String
Dim ReadOnlyType As Boolean
End Structure
'운영자 권한
Public Structure ToolAdminRight
Dim charEdit As Boolean
Dim charLocation As Boolean
Dim charseeItem As Boolean
Dim ItemCreate As Boolean
Dim ItemEdit As Boolean
Dim ItemDel As Boolean
Dim RestraintReg As Boolean
Dim RestraintRelease As Boolean
Dim currentUserLogin As Boolean
Dim lastUserLogin As Boolean
Dim DoingLogout As Boolean
End Structure
Public Sub Initialize()
MakeAdminTable()
MakeCharItemTable()
MakeCharRestraintTable()
MakeCurrentUserTable()
MakeLastUserTable()
End Sub
'테이블 만들기
Private Sub MakeAdminTable()
Dim myAdminTable As New DataTable("AdminSearch")
Dim myDataColumn As New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "strAdminID"
myDataColumn.ReadOnly = True
myAdminTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "strPasswd"
myDataColumn.ReadOnly = True
myAdminTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "strLevel"
myDataColumn.ReadOnly = True
myAdminTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "strName"
myDataColumn.ReadOnly = True
myAdminTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "strIp"
myDataColumn.ReadOnly = True
myAdminTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "dateRegit"
myDataColumn.ReadOnly = True
myAdminTable.Columns.Add(myDataColumn)
ds.Tables.Add(myAdminTable)
End Sub
Private Sub MakeCharItemTable()
Dim myCharItemTable As New DataTable("CharItemList")
Dim myDataColumn As New DataColumn()
Dim ColumnName(59) As myData
ColumnName(0).ColumnName = "ItemIndex"
ColumnName(0).ReadOnlyType = True
ColumnName(1).ColumnName = "ItemTypeID"
ColumnName(1).ReadOnlyType = True
ColumnName(2).ColumnName = "ItemName"
ColumnName(2).ReadOnlyType = True
ColumnName(3).ColumnName = "ItemType"
ColumnName(3).ReadOnlyType = True
ColumnName(4).ColumnName = "ItemWhere"
ColumnName(4).ReadOnlyType = True
ColumnName(5).ColumnName = "ItemX"
ColumnName(5).ReadOnlyType = True
ColumnName(6).ColumnName = "ItemY"
ColumnName(6).ReadOnlyType = True
ColumnName(7).ColumnName = "ItemZ"
ColumnName(7).ReadOnlyType = True
ColumnName(8).ColumnName = "SizeX"
ColumnName(8).ReadOnlyType = True
ColumnName(9).ColumnName = "SizeY"
ColumnName(9).ReadOnlyType = True
ColumnName(10).ColumnName = "Amount"
ColumnName(10).ReadOnlyType = True
ColumnName(11).ColumnName = "WhetherAmount"
ColumnName(11).ReadOnlyType = True
ColumnName(12).ColumnName = "RuneSocket"
ColumnName(12).ReadOnlyType = True
ColumnName(13).ColumnName = "MaxDurability"
ColumnName(13).ReadOnlyType = True
ColumnName(14).ColumnName = "CurSocketNum"
ColumnName(14).ReadOnlyType = True
ColumnName(15).ColumnName = "MaxSocketNum"
ColumnName(15).ReadOnlyType = True
ColumnName(16).ColumnName = "MaterialType"
ColumnName(16).ReadOnlyType = True
Dim nCount As Int32
For nCount = 17 To 24
ColumnName(nCount).ColumnName = "Socket" + (nCount - 17).ToString
ColumnName(nCount).ReadOnlyType = True
Next
For nCount = 25 To 59
ColumnName(nCount).ColumnName = "Attribute" + (nCount - 25).ToString
ColumnName(nCount).ReadOnlyType = True
Next
For nCount = 0 To 59
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = ColumnName(nCount).ColumnName
myDataColumn.ReadOnly = ColumnName(nCount).ReadOnlyType
myCharItemTable.Columns.Add(myDataColumn)
Next
ds.Tables.Add(myCharItemTable)
End Sub
'테이블 만들기
Private Sub MakeCharRestraintTable()
Dim myCharRestraintTable As New DataTable("CharRestraint")
Dim myDataColumn As New DataColumn()
' Create first column and add to the DataTable.
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "UID"
myDataColumn.ReadOnly = True
'myDataColumn.Unique = True
' Add the column to the DataColumnCollection.
myCharRestraintTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "strClientID"
myDataColumn.ReadOnly = True
'myDataColumn.Unique = True
' Add the column to the DataColumnCollection.
myCharRestraintTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "strCharacterID"
myDataColumn.ReadOnly = True
'myDataColumn.Unique = True
' Add the column to the DataColumnCollection.
myCharRestraintTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "BlockType"
myDataColumn.ReadOnly = True
'myDataColumn.Unique = True
' Add the column to the DataColumnCollection.
myCharRestraintTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "BlockKind"
myDataColumn.ReadOnly = True
'myDataColumn.Unique = True
' Add the column to the DataColumnCollection.
myCharRestraintTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "Blocked"
myDataColumn.ReadOnly = True
'myDataColumn.Unique = True
' Add the column to the DataColumnCollection.
myCharRestraintTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "EndTime"
myDataColumn.ReadOnly = True
'myDataColumn.Unique = True
' Add the column to the DataColumnCollection.
myCharRestraintTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "adminid"
myDataColumn.ReadOnly = True
myCharRestraintTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "discription"
myDataColumn.ReadOnly = True
myCharRestraintTable.Columns.Add(myDataColumn)
ds.Tables.Add(myCharRestraintTable)
End Sub
'테이블 만들기
Private Sub MakeCurrentUserTable()
Dim myCurrentUserTable As New DataTable("CurrentUser")
Dim myDataColumn As New DataColumn()
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "strClientID"
myDataColumn.ReadOnly = True
myCurrentUserTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "strIP"
myDataColumn.ReadOnly = True
myCurrentUserTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "intCRMIndex"
myDataColumn.ReadOnly = True
myCurrentUserTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "UID"
myDataColumn.ReadOnly = True
myCurrentUserTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "LoginTime"
myDataColumn.ReadOnly = True
myCurrentUserTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "ServerID"
myDataColumn.ReadOnly = True
myCurrentUserTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "BillType"
myDataColumn.ReadOnly = True
myCurrentUserTable.Columns.Add(myDataColumn)
ds.Tables.Add(myCurrentUserTable)
End Sub
'테이블 만들기
Private Sub MakeLastUserTable()
Dim myLastUserTable As New DataTable("LastUser")
Dim myDataColumn As New DataColumn()
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "strClientID"
'myDataColumn.ColumnName = "한게임계정"
myDataColumn.ReadOnly = True
myLastUserTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "strIP"
'myDataColumn.ColumnName = "접속IP"
myDataColumn.ReadOnly = True
myLastUserTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "intCRMIndex"
'myDataColumn.ColumnName = "피시방"
myDataColumn.ReadOnly = True
myLastUserTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "UID"
'myDataColumn.ColumnName = "유저인덱스"
myDataColumn.ReadOnly = True
myLastUserTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "LoginTime"
'myDataColumn.ColumnName = "접속시간"
myDataColumn.ReadOnly = True
myLastUserTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "LogOutTime"
'myDataColumn.ColumnName = "아웃시간"
myDataColumn.ReadOnly = True
myLastUserTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "ServerID"
'myDataColumn.ColumnName = "접속서버"
myDataColumn.ReadOnly = True
myLastUserTable.Columns.Add(myDataColumn)
myDataColumn = New DataColumn()
myDataColumn.DataType = System.Type.GetType("System.String")
myDataColumn.ColumnName = "BillType"
'myDataColumn.ColumnName = "과금종류"
myDataColumn.ReadOnly = True
myLastUserTable.Columns.Add(myDataColumn)
ds.Tables.Add(myLastUserTable)
End Sub
Public Sub SetServerNames(ByRef ServerListCombobox As ComboBox)
ServerListCombobox.Items.Add(Test)
ServerListCombobox.Items.Add(Solpis)
ServerListCombobox.Items.Add(Karte)
ServerListCombobox.Items.Add(Iranshya)
ServerListCombobox.Items.Add(Hiland)
ServerListCombobox.Items.Add(Aldia)
ServerListCombobox.Items.Add(Yunite)
ServerListCombobox.SelectedIndex = 0
End Sub
''------------------------------------
''엑셀 출력하기 버튼
''ByVal Query As String
''------------------------------------
'Public Function ExcelPrint(ByVal tblCustomer As DataTable) As Boolean
' '엑셀 작업시작하기
' Dim excelApp As Excel.Application
' Dim rowIndex As Integer = 1
' Dim colIndex As Integer = 0
' 'Me.Cursor.Current = Cursors.WaitCursor
' Try
' '------------------------------------------
' ' 새로운 액셀 프로그램 시작
' '------------------------------------------
' excelApp = New Excel.Application()
' '------------------------------------------
' ' 엑셀 시트 추가
' '------------------------------------------
' excelApp.Workbooks.Add()
' '------------------------------------------
' ' Customers 테이블 오브젝트를 받는다.
' '------------------------------------------
' 'strquery = tbox_query.Text
' 'tblCustomer = Me.GetDataTable(Query, "table")
' '------------------------------------------
' ' 액셀의 첫번째 행을 컬럼명으로 채운다
' '------------------------------------------
' Dim col As DataColumn
' For Each col In tblCustomer.Columns
' colIndex += 1
' excelApp.Cells(1, colIndex) = col.ColumnName
' Next
' '------------------------------------------
' ' 실제 데이터를 액셀에 채워넣는다.
' '------------------------------------------
' Dim row As DataRow
' For Each row In tblCustomer.Rows
' rowIndex += 1
' colIndex = 0
' For Each col In tblCustomer.Columns
' colIndex += 1
' excelApp.Cells(rowIndex, colIndex) = row(col).ToString
' Next
' Next
' excelApp.Visible = True
' Catch exp As Exception
' MessageBox.Show(exp.ToString)
' If Not excelApp Is Nothing Then
' excelApp.Application.Quit()
' excelApp = Nothing
' End If
' End Try
' 'Me.Cursor.Current = Cursors.Default
'End Function
End Module