一个离线ADO数据管理模块的实现

一个离线ADO数据管理模块的实现     选择自 jaopen 的 Blog
关键字  一个离线ADO数据管理模块的实现
出处 

  Option Explicit
  Public pubcn As New ADODB.Connection
  Dim temp_i As Integer
  ''连接数据库
  Public Sub GetConnect()
     
      On Error GoTo errorhandler:
      Dim constr As String
      If Not (pubcn.State = 0) Then
          pubcn.Close
      End If
         
      pubcn.CursorLocation = adUseClient
      pubcn.ConnectionTimeout = 5
      pubcn.Open "Provider=sqloledb;" & _
             "Network Library=DBMSSOCN;" & _'指明采用IP+端口方式查找Sql Server
             "Data Source=172.17.21.125,1433;" & _
             "Initial Catalog=hpdata;" & _
             "User ID=user;" & _
             "Password=password;" & _
             "Encrypt=yes"
            
      pubcn.DefaultDatabase = "hpdata" ''!!!!!!!!!!!!!!!!
      Exit Sub
  errorhandler:
      Dim msg As Integer
      msg = MsgBox("连接时发生错误:" & Err.Number & Err.Description & Err.Source & "请将此信息发至邮箱", vbOKOnly)
  
  End Sub
  
  ''简单查询得到数据集
  Public Function GetRS(sqlstr As String) As ADODB.Recordset
     
      On Error GoTo errorhandler
      Call GetConnect
     
      Set GetRS = New ADODB.Recordset
     
      GetRS.Open sqlstr, pubcn, adOpenStatic, adLockOptimistic
     
      Set GetRS.ActiveConnection = Nothing
     
      pubcn.Close
      Exit Function
  errorhandler:
      Dim i As Integer
      i = MsgBox(sqlstr & ":::::::" & Err.Description & Err.HelpContext, vbOKCancel)
  
  End Function
  '同步数据集
  Public Sub UpdateRS(Rs As ADODB.Recordset, Optional RequerryFlag As Integer)
      Call GetConnect
     
      With Rs
          .ActiveConnection = pubcn
          .Update
          'If (Not IsMissing(RequerryFlag)) And RequerryFlag = 1 Then ''改于2004年2月6日为修除历史记录本客户号查询的修改无法数据同步而设
             ' .Requery
          'End If
          .ActiveConnection = Nothing
      End With
         
      pubcn.Close
  
  End Sub
  '执行带有参数对象的查询得到数据集
  Public Sub GetRSFromCmd(Cmd As ADODB.Command, str As String, Rs As ADODB.Recordset)
     
      On Error GoTo errorhandler
      Call GetConnect
      If Not (Cmd.State = adStateClosed) Then
          Cmd.Cancel
          Cmd.ActiveConnection = Nothing
      End If
      With Cmd
          .ActiveConnection = pubcn
          .CommandTimeout = 5
          .CommandType = adCmdText
          .CommandText = str
      End With
      If Not (Rs.State = 0) Then
          Rs.Close
      End If
      Rs.Open Cmd, , adOpenStatic, adLockOptimistic
    
      Rs.ActiveConnection = Nothing
     
      With Cmd
          .ActiveConnection = Nothing
      End With
      pubcn.Close
      Exit Sub
  errorhandler:
      temp_i = MsgBox(str & Err.Number & Err.Description & Err.Source, vbOKOnly)
     
  End Sub

       '执行无返回结果的sql语句      

  Public Sub CnExecute(ByVal Qstr As String, ByRef RecordNumber As Long, Optional QRs As ADODB.Recordset)
      'On Error GoTo errorhandler
     
      Call GetConnect
      pubcn.Execute Qstr, RecordNumber, adExecuteNoRecords
     
      If IsMissing(QRs) Then
      QRs.ActiveConnection = pubcn
      QRs.Requery
      QRs.ActiveConnection = Nothing
      End If
      pubcn.Close
  errorhandler:
     temp_i = MsgBox(Qstr & Err.Number & Err.Description, vbOKOnly)
  
  End Sub


相关文章
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值