zoukankan      html  css  js  c++  java
  • ReTry——访问数据时失败,等待后重试

            Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Double)
    <
    WebMethod()> _
            
    Public Function ReTry() As Integer

                
    Dim aDS As New DataSet       
                
    Dim aSql As String
                
    Dim aRet As Integer
                
    Dim CheckFlg As Boolean
                
    Dim aRetry As Integer
                
    Dim aWait As Integer
                
    Dim OraDa2 As OleDb.OleDbDataAdapter

                
    '等待时间
                aWait = LockWaitTime
                '重试次数
                aRetry = LockRetryMax

                OpenOraDatabase()

                OraTrans 
    = OraConn.BeginTransaction()
                OraCmd.Transaction 
    = OraTrans
                
    Try
                    CheckFlg 
    = True
                    
    For i = 1 To aRetry
                        
    Try
                            
    '执行失败
                            If CheckFlg = False Then
                               
    '等待
                                Call Sleep(aWait * 1000)
                            
    End If
                           
    '指定SQL语句
                            aSql = “”
                            OraCmd.CommandText 
    = aSql
                            OraDa2 
    = New OleDb.OleDbDataAdapter(OraCmd)
                            
    '打开记录集
                            OraDa2.Fill(aDS, "TableName")
                            
    If aDS.Tables("TableName").Rows.Count = 0 Then
                                aRet 
    = 0
                            
    Else
                                aRet 
    = 1
                            
    End If
                           
    '执行成功
                            CheckFlg = True
                        
    Catch ex As Exception
                            CheckFlg 
    = False
                        
    End Try
                        '执行成功退出循环
                        If CheckFlg = True Then
                            
    Exit For
                        
    End If
                    
    Next i

                    
    If CheckFlg = False Then
                        aRet 
    = 2
                        
    Return aRet
                        
    Exit Function
                    
    End If

                    
    If aRet = 1 Then
                        
                    
    End If
                   
                    OraTrans.Commit()
                    aRet 
    = 1
                
    Catch ex As Exception
                    OraTrans.Rollback()
                    aRet 
    = 0
                    
    Return aRet
                
    Finally
                    CloseOraDatabase()
                
    End Try

                
    Return aRet

            
    End Function


  • 相关阅读:
    链接唤醒IOSApp
    C#抽象属性
    c#结构体与类的区别
    广告学入门
    个性化推荐十大挑战[
    MapReduce 读取和操作HBase中的数据
    mysql sql命令大全
    从B 树、B+ 树、B* 树谈到R 树
    MapReduce操作HBase
    Meanshift,聚类算法
  • 原文地址:https://www.cnblogs.com/sekihin/p/722688.html
  • Copyright © 2011-2022 走看看
    Creative Commons License 本作品采用 知识共享署名-非商业性使用 2.5 中国大陆许可协议进行许可。