📄 classes.cls
字号:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "Classes"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
'1 Classid Int 课程编号
'2 ClassName Varchar 30 课程名称
'3 Describe Varchar 100 课程描述
'4 UpperId Int 上级课程编号
Public ClassId As Long
Public Classname As String
Public Describe As String
Public UpperId As Long
Public Sub Init()
ClassId = -1
Classname = ""
Describe = ""
UpperId = -1
End Sub
'删除
Public Sub Delete(ByVal TmpId As Long)
DB_Connect
SqlStmt = "DELETE FROM Classes WHERE ClassId=" + Trim(Str(TmpId))
OdbcExt (SqlStmt)
rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Sub
Public Sub GetInfo(TmpName As String)
Classname = TmpName
DB_Connect
SqlStmt = "SELECT * FROM Classes WHERE ClassName='" + Trim(TmpName) + "'"
OdbcExt (SqlStmt)
If SQLFetch(Hstmt) <> SQL_NO_DATA_FOUND Then
'读取课程名称
ColVal = String(400, 0)
rc = SQLGetData(Hstmt, 1, 1, ColVal, Len(ColVal), pcblen)
ClassId = Val(ColVal)
'读取课程描述
ColVal = String(400, 0)
rc = SQLGetData(Hstmt, 3, 1, ColVal, Len(ColVal), pcblen)
Describe = TrimStr(ColVal)
'读取上一级课程的编号
ColVal = String(400, 0)
rc = SQLGetData(Hstmt, 4, 1, ColVal, Len(ColVal), pcblen)
UpperId = Val(ColVal)
Else
Init
End If
rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Sub
'得到课程名
Public Function GetName(ByVal TmpId As Long) As String
DB_Connect
SqlStmt = "SELECT ClassName FROM Classes WHERE ClassId=" + Trim(Str(TmpId))
OdbcExt (SqlStmt)
If SQLFetch(Hstmt) <> SQL_NO_DATA_FOUND Then
ColVal = String(400, 0)
rc = SQLGetData(Hstmt, 1, 1, ColVal, Len(ColVal), pcblen)
GetName = TrimStr(ColVal)
Else
GetName = "课程信息"
End If
rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Function
Public Function GetNewId() As Long
Dim TmpId As Long
'连接数据库
DB_Connect
'设置要执行的SQL语句
SqlStmt = "SELECT ClassId FROM Classes ORDER BY ClassId"
'执行SQL语句
OdbcExt (SqlStmt)
'读取SELECT语句返回的查询结果
i = 1
Do While SQLFetch(Hstmt) <> SQL_NO_DATA_FOUND
ColVal = String(40, 0)
rc = SQLGetData(Hstmt, 1, 1, ColVal, Len(ColVal), pcblen)
TmpId = Val(ColVal)
If TmpId = i Then
i = i + 1
Else
GetNewId = i
rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
Exit Function
End If
Loop
rc = SQLFreeStmt(Hstmt, SQL_DROP)
'断开与数据库的连接
DB_Disconnect
'将得到的新编号作为函数的返回值
GetNewId = i
End Function
'使用了
Public Function HaveSon(ByVal TmpUpperId As Long) As Boolean
DB_Connect
SqlStmt = "SELECT ClassId FROM Classes WHERE UpperId=" + Trim(Str(TmpUpperId))
OdbcExt (SqlStmt)
If SQLFetch(Hstmt) = SQL_NO_DATA_FOUND Then
HaveSon = False
Else
HaveSon = True
End If
rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Function
Public Function In_DB(ByVal Classname As String) As Boolean
DB_Connect
SqlStmt = "SELECT ClassId FROM Classes WHERE ClassName='" + Trim(Classname) + "'"
OdbcExt (SqlStmt)
If SQLFetch(Hstmt) = SQL_NO_DATA_FOUND Then
In_DB = False
Else
In_DB = True
End If
rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Function
Public Function Insert() As Long
Dim ClassId As Long
'生成新的编号
ClassId = GetNewId
DB_Connect
SqlStmt = "INSERT INTO Classes VALUES(" + Trim(Str(ClassId)) + ",'" _
+ Trim(Classname) + "','" + Trim(Describe) _
+ "'," + Trim(Str(UpperId)) + ")"
OdbcExt (SqlStmt)
rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
Insert = ClassId
End Function
'得到所有课程子课程的全部信息
Public Sub Load_Class_ByUpper(ByVal ClassId As Long)
Dim i As Integer
'初始化课程数组
Erase Arr_ClassName
Erase Arr_ClassDescribe
Erase Arr_ClassId
ReDim Arr_ClassName(0)
ReDim Arr_ClassDescribe(0)
ReDim Arr_ClassId(0)
DB_Connect
SqlStmt = "SELECT ClassId,ClassName,Describe FROM Classes WHERE UpperId=" + Trim(Str(ClassId))
OdbcExt (SqlStmt)
i = 0
Do Until SQLFetch(Hstmt) = 100
'读取课程编号
ColVal = String(40, 0)
rc = SQLGetData(Hstmt, 1, 1, ColVal, Len(ColVal), pcblen)
ReDim Preserve Arr_ClassId(i + 1)
Arr_ClassId(i) = Val(ColVal)
'读取课程名称
ColVal = String(400, 0)
rc = SQLGetData(Hstmt, 2, 1, ColVal, Len(ColVal), pcblen)
ReDim Preserve Arr_ClassName(i + 1)
Arr_ClassName(i) = TrimStr(ColVal)
'读课程描述
ColVal = String(400, 0)
rc = SQLGetData(Hstmt, 3, 1, ColVal, Len(ColVal), pcblen)
ReDim Preserve Arr_ClassDescribe(i + 1)
Arr_ClassDescribe(i) = Val(ColVal)
i = i + 1
Loop
'存入了章节数
FrmclassMan.num = i - 1
rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Sub
'更新数据
Public Sub Update(ByVal TmpId As Long)
DB_Connect
SqlStmt = "UPDATE Classes SET ClassName='" + Trim(Classname) _
+ "',Describe='" + Trim(Describe) _
+ "' WHERE ClassId=" + Trim(Str(TmpId))
OdbcExt (SqlStmt)
rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -