Jump to content
Sign in to follow this  
DjDeep00

Ability to close ADODB connection anytime....

Recommended Posts

DjDeep00

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>")

Share this post


Link to post
Share on other sites
PsaltyDS

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

Share this post


Link to post
Share on other sites
DjDeep00

PsaltyDS....No luck...I still cant get it to close the connection and exit the loop....

Share this post


Link to post
Share on other sites
DjDeep00

Bump...Ptrex?....Anyone?

Share this post


Link to post
Share on other sites
ptrex

@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

Share this post


Link to post
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
Sign in to follow this  

×