VB SQL 操作通式

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值