DjDeep00 Posted June 19, 2007 Share Posted June 19, 2007 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 More sharing options...
PsaltyDS Posted June 20, 2007 Share Posted June 20, 2007 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... 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 More sharing options...
DjDeep00 Posted June 21, 2007 Author Share Posted June 21, 2007 PsaltyDS....No luck...I still cant get it to close the connection and exit the loop.... Link to comment Share on other sites More sharing options...
DjDeep00 Posted July 23, 2007 Author Share Posted July 23, 2007 Bump...Ptrex?....Anyone? Link to comment Share on other sites More sharing options...
ptrex Posted July 24, 2007 Share Posted July 24, 2007 @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> 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 Contributions :Firewall Log Analyzer for XP - Creating COM objects without a need of DLL's - UPnP support in AU3Crystal Reports Viewer - PDFCreator in AutoIT - Duplicate File FinderSQLite3 Database functionality - USB Monitoring - Reading Excel using SQLRun Au3 as a Windows Service - File Monitor - Embedded Flash PlayerDynamic Functions - Control Panel Applets - Digital Signing Code - Excel Grid In AutoIT - Constants for Special Folders in WindowsRead data from Any Windows Edit Control - SOAP and Web Services in AutoIT - Barcode Printing Using PS - AU3 on LightTD WebserverMS LogParser SQL Engine in AutoIT - ImageMagick Image Processing - Converter @ Dec - Hex - Bin -Email Address Encoder - MSI Editor - SNMP - MIB ProtocolFinancial Functions UDF - Set ACL Permissions - Syntax HighLighter for AU3ADOR.RecordSet approach - Real OCR - HTTP Disk - PDF Reader Personal Worldclock - MS Indexing Engine - Printing ControlsGuiListView - Navigation (break the 4000 Limit barrier) - Registration Free COM DLL Distribution - Update - WinRM SMART Analysis - COM Object Browser - Excel PivotTable Object - VLC Media Player - Windows LogOnOff Gui -Extract Data from Outlook to Word & Excel - Analyze Event ID 4226 - DotNet Compiler Wrapper - Powershell_COM - New 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