红警三盟军攻略:求贵人详细解释这些vb代码?万分感谢

来源:百度文库 编辑:高考问答 时间:2024/05/01 22:05:45
Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sTokens() As String
SQL = Replace(SQL, vbCrLf, vbNullString)
'MsgBox ConnectString, vbOKOnly + vbExclamation, "警告"

On Error GoTo ExecuteSQL_Error

sTokens = Split(SQL)
Set cnn = New ADODB.Connection
cnn.ConnectionString = (ConnectString)
cnn.Open
'cnn.Open ConnectString
If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then
cnn.Execute SQL
MsgString = sTokens(0) & " query successful"
Else
'Set rst = New ADODB.Recordset
'rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic
'cnn.Execute SQL
Set rs = New ADODB.Recordset
With rs
.ActiveConnection = cnn
.CursorLocation = adUseClient
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Open SQL
End With

Set ExecuteSQL = rs
MsgString = "查询到" & ExecuteSQL.RecordCount & " 条记录 "
End If
ExecuteSQL_Exit:
Set rst = Nothing
Set cnn = Nothing
Exit Function
ExecuteSQL_Error:
MsgString = "查询错误: " & Err.Description
Resume ExecuteSQL_Exit
End Function

这是一个完整的提取数据库记录集的函数。调用这个函数需要两个参数。前面一个是需要提取的字段名,后一个是需要返回的消息。
另外这是vb6的代码,如果放在vb 2003.net可能会出现问题。
前面有'的都是注释行,可以不去管它。
split用来分解sql字符串以获得若干的字段名。