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


  • 相关阅读:
    spring 环绕通知 ProceedingJoinPoint 执行proceed方法的作用是什么
    SpringMVC之RequestContextHolder分析
    MySQL中索引不会被用到的情况
    使用Stream快速对List进行一些操作
    Vue中this.$refs[name].resetFields();的使用
    好看的字体
    转,javascript中call()、apply()、bind()的用法终于理解
    vue中的$props
    手机端页面自适应解决方案-rem布局
    查看项目里特定npm包的版本号
  • 原文地址:https://www.cnblogs.com/sekihin/p/722688.html
  • Copyright © 2011-2022 走看看
    Creative Commons License 本作品采用 知识共享署名-非商业性使用 2.5 中国大陆许可协议进行许可。