Jump to content

Ability to close ADODB connection anytime....


Recommended Posts

Ptrex (guru of adodb) or anyone else who has experience with adodb...

After clicking a button in my gui, the following script runs. I want to know how I can stop it and exit the loop and close the connection anytime. Maybe use a Hotkey or the same button you clicked to start this loop.

For $x=1 to $Tables_Split[0]

$oMyError = ObjEvent("AutoIt.Error","MyErrFunc"); Initializes COM handler
Global $ado = ObjCreate( "ADODB.Connection" ); Create a COM ADODB Object with the Beta version

With $ado
.ConnectionString =("Provider='OraOLEDB.Oracle';Data Source=" &  GUICtrlRead($Database_Env_Combo) & ";User Id='" & $UserID & "';Password='" & $User_Password & "';")
.Open
EndWith
$adors = ObjCreate( "ADODB.RecordSet" ); Create a Record Set to handles SQL Records
With $adors
.ActiveConnection = $ado
.Source = "Select column_name from ALL_TAB_COLUMNS WHERE owner='LNP' AND table_name =Upper('" & $Tables_Split[$x] & "') ORDER BY column_id"
.Open
EndWith

$Column_Name=""

FileWriteLine($Root_HTML_File,"SQL> Select * from lnp." & StringUpper($Tables_Split[$x]) & ";")

While not $adors.EOF
For $i = 0 To $adors.Fields.Count - 1

$Column_Name= $Column_Name & '<th scope="col">' & $adors.Fields( $i ).Value & '</th>'

Next

$adors.MoveNext; Go to the next record

WEnd

$ado.Close

FileWriteLine($Root_HTML_File,"<tr>" & $Column_Name & "</tr>")
Link to comment
Share on other sites

Ptrex (guru of adodb) or anyone else who has experience with adodb...

After clicking a button in my gui, the following script runs. I want to know how I can stop it and exit the loop and close the connection anytime. Maybe use a Hotkey or the same button you clicked to start this loop.

I don't think it's an ADODB issue just loop logic. This technique uses a HotKeySet() to toggle a flag, but it could just as easily be GuiCtrlSetOnEvent() for a button:

Global $CloseADODB = False
HotKeySet("{ESC}", "_AdoClose")

; ...

While 1
    If Not $adors.EOF Then
        For $i = 0 To $adors.Fields.Count - 1
            $Column_Name = $Column_Name & '<th scope="col">' & $adors.Fields ($i ).Value & '</th>'
        Next
        If $CloseADODB Then ExitLoop
        $adors.MoveNext; Go to the next record
    Else
        ExitLoop
    EndIf
WEnd

$ado.Close
$CloseADODB = False

; ...

Func _AdoClose ()
    $CloseADODB = True
EndFunc  ;==>_AdoClose

Hmm... AutoIt tags don't seem to be working right now... :rolleyes:

Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law
Link to comment
Share on other sites

  • 1 month later...

@DjDeep00

As PsaltyDS indicated your problem is not within ADODB but within the logic of the loops you are using.

For $x=1 to $Tables_Split[0]

$oMyError = ObjEvent("AutoIt.Error","MyErrFunc"); Initializes COM handler
Global $ado = ObjCreate( "ADODB.Connection" ); Create a COM ADODB Object with the Beta version

With $ado
.ConnectionString =("Provider='OraOLEDB.Oracle';Data Source=" &  GUICtrlRead($Database_Env_Combo) & ";User Id='" & $UserID & "';Password='" & $User_Password & "';")
.Open
EndWith
$adors = ObjCreate( "ADODB.RecordSet" ); Create a Record Set to handles SQL Records
With $adors
.ActiveConnection = $ado
.Source = "Select column_name from ALL_TAB_COLUMNS WHERE owner='LNP' AND table_name =Upper('" & $Tables_Split[$x] & "') ORDER BY column_id"
.Open
EndWith
FileWriteLine($Root_HTML_File,"SQL&gt; Select * from lnp." & StringUpper($Tables_Split[$x]) & ";")
Next

$Column_Name=""
While not $adors.EOF
    For $i = 0 To $adors.Fields.Count - 1
    $Column_Name= $Column_Name & '<th scope="col">' & $adors.Fields( $i ).Value & '</th>'
    $adors.MoveNext; Go to the next record
FileWriteLine($Root_HTML_File,"<tr>" & $Column_Name & "</tr>")
WEnd

$ado.Close

This looks more like a logical loop sequence.

regards,

ptrex

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...