遗传信息与基因:请教懂VB制作组件解决并发行访问的大虾

来源:百度文库 编辑:高校问答 时间:2024/04/29 10:02:00
请帮忙解释一下这个WebMTS组件每段代码的作用和对解决高并发性问题这几段代码分别起到的作用和整体作用,谢谢各位拉,很急呢
Private Conn As ADODB.Connection

Public ConnString As Variant
Private rs As ADODB.Recordset
Private objCtx As ObjectContext
Private filePath As Variant
Private Sub CloseDataBase()

Set Conn = New ADODB.Connection
If (Conn <> "" And Conn.State = ADODB.adStateOpen) Then
Conn.Close
Conn = ""
End If
Set Conn = Nothing
Set rs = Nothing
End Sub

Public Function GetConnection() As ADODB.Connection
CloseDataBase
Set Conn = New ADODB.Connection
If (Conn <> "" Or Conn.State = ADODB.adStateClosed) Then
Conn.Open ConnString
Set GetConnection = Conn
End If
End Function

Public Sub ExecuteSQL(sql As Variant)
Set Conn = GetConnection
Set rs = New ADODB.Recordset
rs.Open sql, Conn, 1
CloseDataBase
End Sub

Public Function GetInfomation(sql As Variant) As ADODB.Recordset
Set Conn = GetConnection
Set rs = New ADODB.Recordset
rs.Open sql, Conn, 1, 3
Set GetInfomation = rs
'CloseDataBase

End Function

Public Sub AddArticle(insertSql As Variant, fileStr As Variant, fPath As Variant)
filePath = fPath
ExecuteSQL insertSql
SaveFile fileStr, filePath
Set objCtx = GetObjectContext()
If Err Then
Err.Clear
objCtx.SetAbort
Else
objCtx.SetComplete
End If
End Sub

Public Sub EditArticle(updateSql As Variant, fileStr As Variant, fPath As Variant)
AddArticle updateSql, fileStr, fPath
End Sub

Public Sub DeleteArticle(deleteSql As Variant, fPath As Variant)
filePath = fPath
ExecuteSQL deleteSql
DeleteFile
Set objCtx = GetObjectContext()
If Err Then
Err.Clear
objCtx.SetAbort
Else
objCtx.SetComplete
End If
End Sub

Public Sub CreateFolder(insertSql As Variant, fPath As Variant)
ExecuteSQL insertSql
Dim fs As New FileSystemObject
If Not fs.FolderExists(fPath) Then _
fs.CreateFolder fPath
Set objCtx = GetObjectContext()
If Err Then
fs.DeleteFolder fPath
Err.Clear
objCtx.SetAbort
Else
objCtx.SetComplete
End If
End Sub

Public Sub DeleteFolder(insertSql As Variant, fPath As Variant)
ExecuteSQL insertSql
Dim fs As New FileSystemObject
If fs.FolderExists(fPath) Then _
fs.DeleteFolder fPath
Set objCtx = GetObjectContext()
If Err Then
Err.Clear
objCtx.SetAbort
Else
objCtx.SetComplete
End If
End Sub

Private Sub SaveFile(fileStr As Variant, fPath As Variant)
filePath = fPath
DeleteFile
Dim fs As New FileSystemObject
Dim f As TextStream
Set f = fs.CreateTextFile(filePath, True)
f.WriteLine fileStr
End Sub

Private Sub DeleteFile()
Dim fs As New FileSystemObject
If fs.FileExists(filePath) Then _
fs.DeleteFile filePath
End Sub

Sub OnTransactionAbort()

DeleteFile
End Sub
Sub OnTransactionCommit()
End Sub