Sub 执行写入和更新操作()
Dim T_SQL As String
Dim GetBack As Variant '在执行写入或更新操作时,该变量用于返回SQL执行的错误信息
T_SQL = "Update [master].[dbo].[spt_monitor] Set [lastrun] = 2 WHERE [idle] = 555555"
If SQL_Operation(T_SQL, GetBack) Then
'执行到此,表示数据库操作成功
Else
'执行到此,表示sql操作发生错误,GetBack的值为错误的内容
MsgBox GetBack
End If
End Sub
Sub 执行读取操作()
Dim T_SQL As String
Dim GetBack As Variant '在执行读取操作成功时,该值是一个二维数组,当操作失败是,该值是发生的错误信息
T_SQL = "SELECT * FROM [master].[dbo].[spt_monitor]"
If SQL_Operation(T_SQL, GetBack) Then
'执行到此,表示执行读取操作成功,该值是一个二维数组
Else
'执行到此,表示sql操作发生错误,GetBack的值为错误的内容
MsgBox GetBack
End If
End Sub
Private Function SQL_Operation(T_SQL As String, Optional GetBack As Variant) As Boolean 'VB ADODB SQL 操作通式
Dim SQLconnStr As String
SQLconnStr = "Provider=sqloledb;Server=109.136.1.102;Database=master;Uid=sa;Pwd=sess"
'--------------------------------------------------------------------------------------
On Error GoTo ErrOccur
Set Con = CreateObject("Adodb.Connection"): Con.Open SQLconnStr 'Dim Con As New ADODB.Connection '增加引用ADO
Set Rec = CreateObject("Adodb.Recordset"): Rec.Open T_SQL, Con 'Dim Rec As New ADODB.Recordset '增加引用ADO
'--------------------------------------------------------------------------------------
If CBool(Rec.Fields.Count) Then
With Rec
Dim UB As Long: UB = 0
Dim It As Integer
ReDim GetBack(1 To .Fields.Count, UB) As Variant
'------------------------------------------------
For It = 0 To .Fields.Count - 1
GetBack(It + 1, UB) = .Fields(It).Name
Next
Do While Not .EOF
UB = UB + 1
ReDim Preserve GetBack(1 To .Fields.Count, UB) As Variant
For It = 0 To .Fields.Count - 1
GetBack(It + 1, UB) = .Fields(It).Value
Next
.MoveNext
Loop
End With
Rec.Close
End If
'--------------------------------------------------------------------------------------
Con.Close: SQL_Operation = True
Exit Function
ErrOccur:
SQL_Operation = False
GetBack = Err.Description
Err.Clear
End Function
VB SQL 操作通式
最新推荐文章于 2021-05-12 09:17:40 发布