Jewtus Posted October 22, 2015 Share Posted October 22, 2015 I have a couple functions that I use pretty heavily (one of them isn't the greatest, but its functional, which is all I care about right now). Func _GetRecords($connection,$query) $sHeaders=StringReplace($query,"Select ","") $sHeaders=StringLeft($sHeaders,StringInStr($sHeaders,"from")-1) $aHeaders=StringSplit($sHeaders,",",2) For $z=0 to UBound($aHeaders)-1 $aHeaders[$z]=StringStripWS(StringStripWS($aHeaders[$z],1),2) If StringInStr($aHeaders[$z]," as ") <> 0 Then $aHeaders[$z]=StringTrimLeft($aHeaders[$z],StringInStr($aHeaders[$z]," as ")+3) EndIf Next _ArrayTranspose($aHeaders) $sqlRs = ObjCreate("ADODB.Recordset") ConsoleWrite($query&@CRLF) $sqlRs.open ($query,$connection) If $sqlRs.EOF = True Then Return $aHeaders Else $result = $sqlRs.GetRows If UBound($result)>0 Then _ArrayInsert($result,0,_ArrayToString($aHeaders)) Return $result $sqlRs.Close Else SetError(1) $sqlRs.Close EndIf EndIf EndFunc Func _InsertRecord($connection,$query) $sqlRs = ObjCreate("ADODB.Recordset") ConsoleWrite($query&@CRLF) $sqlRs.open ($query,$connection) EndFuncThe problem I face is that if someone leaves their computer and disconnects, it errors out and doesn't perform the query. I have a logger that captures if they get disconnected, but I'm trying to figure out a way to try and redo the query if it fails without changing every reference to my functions. This is my error handler:$oMyError = ObjEvent("AutoIt.Error","MyErrFunc") Func MyErrFunc() $HexNumber=hex($oMyError.number,8) If StringInStr($oMyError.description,'connection')<>0 then DBConnect($mode) Else MsgBox(0,"","_______------- Error -------_______" & @CRLF & _ "err.description is: " & @TAB & $oMyError.description & @CRLF & _ "err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _ "err.number is: " & @TAB & $HexNumber & @CRLF & _ "err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _ "err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _ "err.source is: " & @TAB & $oMyError.source & @CRLF & _ "err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _ "err.helpcontext is: " & @TAB & $oMyError.helpcontext _ ) SetError(0) ; to check for after this function returns EndIf EndfuncYou will notice that if it gets a disconnect, it uses my connection function to reconnect. I'm trying to modify my getrecords and Insert records to make it so if they get disconnected, it tries to reconnect and requery. I was thinking about maybe a Do Until error loop or something, but I'm curious if anyone has any creative ideas for this. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now