📄 questionp.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 = "QuestionP"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Public Id As Integer '关键字
Public PaperId As Integer '试卷号INT
Public ExamId As Integer '试题号INT
Public Sub Init()
Id = -1
PaperId = -1
ExamId = -1
End Sub
'得到一份试卷的所有试题号的信息
Public Sub Load_Exams(ByVal TmpPaperId As Long)
Dim i As Integer
'初始化试题号数组
Erase Arr_ExamId
ReDim Arr_ExamId(0)
DB_Connect
SqlStmt = "SELECT ExamId FROM QuestionP WHERE PaperId=" _
+ Trim(Str(TmpPaperId))
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_ExamId(i + 1)
Arr_ExamId(i) = Val(ColVal)
i = i + 1
Loop
FrmExamRep.numExamId = i - 1
rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Sub
'得到一道题目的所有信息
Public Sub GetInfo(TmpId As Long)
Id = TmpId
DB_Connect
SqlStmt = "SELECT * FROM QuestionP WHERE Id=" + Trim(Str(TmpId))
OdbcExt (SqlStmt)
If SQLFetch(Hstmt) <> SQL_NO_DATA_FOUND Then
'读取试卷号
ColVal = String(400, 0)
rc = SQLGetData(Hstmt, 2, 1, ColVal, Len(ColVal), pcblen)
PaperId = Val(ColVal)
'读取试题号
ColVal = String(400, 0)
rc = SQLGetData(Hstmt, 3, 1, ColVal, Len(ColVal), pcblen)
ExamId = Val(ColVal)
Else
Init
End If
rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Sub
'删除一份试卷中已经添加的所有试题
Public Sub Delete2(ByVal TmpId As Integer)
DB_Connect
SqlStmt = "DELETE FROM QuestionP WHERE PaperId=" + Trim(Str(TmpId))
OdbcExt (SqlStmt)
rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Sub
'删除一道已经添加的试题
Public Sub Delete(ByVal TmpId As Integer)
DB_Connect
SqlStmt = "DELETE FROM QuestionP WHERE Id=" + Trim(Str(TmpId))
OdbcExt (SqlStmt)
rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Sub
'查看某试卷中是否有试题
Public Function In_Db3(ByVal TmpId As Integer) As Boolean
DB_Connect
SqlStmt = "SELECT Id FROM QuestionP WHERE PaperId = " + Trim(Str(TmpId))
OdbcExt (SqlStmt)
If SQLFetch(Hstmt) = SQL_NO_DATA_FOUND Then
In_Db3 = False
Else
In_Db3 = True
End If
rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Function
Public Function In_DBT(ByVal TmpExam As Integer) As Boolean
DB_Connect
SqlStmt = "SELECT Id FROM QuestionP WHERE ExamId = " + Trim(Str(TmpExam))
OdbcExt (SqlStmt)
If SQLFetch(Hstmt) = SQL_NO_DATA_FOUND Then
In_DBT = False
Else
In_DBT = True
End If
rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
End Function
'查看一道题目是不是已经加入到此试卷中
Public Function In_DB(ByVal TmpPaper As Integer, ByVal TmpExam As Integer) As Boolean
DB_Connect
SqlStmt = "SELECT Id FROM QuestionP WHERE PaperId=" _
+ Trim(Str(TmpPaper)) + " And ExamId = " + Trim(Str(TmpExam)) + ""
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 Id As Long
'生成新的编号
Id = GetNewId
DB_Connect
SqlStmt = "INSERT INTO QuestionP VALUES('" + Trim(Str(Id)) + "','" _
+ Trim(Str(PaperId)) + "','" _
+ Trim(Str(ExamId)) + "')"
OdbcExt (SqlStmt)
rc = SQLFreeStmt(Hstmt, SQL_DROP)
DB_Disconnect
Insert = ClassId
End Function
Public Function GetNewId() As Long
Dim TmpId As Long
'连接数据库
DB_Connect
'设置要执行的SQL语句
SqlStmt = "SELECT Id FROM QuestionP ORDER BY Id"
'执行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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -