ADO.au3 UDF 2.1.13 BETA

   (0 reviews)

1 Screenshot

About This File

I want to present BETA Version of my ADO.au3 UDF.

Support topic is here: http://www.autoitscript.com/forum/index.php?showtopic=180850

 

This UDF is modifed version of _sql.au3 UDF.

For that I want to thanks : ; Chris Lambert, eltorro, Elias Assad Neto, CarlH

 

 


What's New in Version 2.1.13 BETA

Released

2016/03/18 '2.1.13 BETA'
.   Changed: _ADO_COMErrorHandler - now showing also _ADO_UDFVersion()  - mLipok
.   New: Enums: $ADO_ERR_ISNOTREADYOBJECT - mLipok
.   Renamed: Function: __ADO_Connection_IsOpen >> __ADO_Connection_IsReady - mLipok
.   Changed: Function: __ADO_Connection_IsReady : new feature checking connection state and seting  $ADO_ERR_ISNOTREADYOBJECT - mLipok
.   New: Function: __ADO_Recordset_IsReady - mLipok
.           __ADO_Recordset_IsReady is a wrapper for __ADO_Recordset_IsValid
.               which also check for $oRecordset.state and set $ADO_ERR_ISNOTREADYOBJECT
.           __ADO_Recordset_IsReady is now used in few functions which uses $oRecordset
.   Changed: Function: __ADO_Recordset_IsNotEmpty : now using __ADO_Recordset_IsReady instead __ADO_Recordset_IsValid - mLipok
.           as __ADO_Recordset_IsReady is wrapper for __ADO_Recordset_IsValid
.           so now __ADO_Recordset_IsNotEmpty checking old and new feature
.
.   !!!!!!!!!!!!!!!!!!!!!!!!
.   Renamed: _ADO_ERROR_Description >> _ADO_MSDNErrorValueEnum_Description
.   New: Function: _ADO_GetErrorDescription - mLipok
.   New: Function: _ADO_ConsoleError - mLipok

2016/03/09 '2.1.12 BETA'
.   New: Enums: $ADO_ERR_ISCLOSEDOBJECT - mLipok
.   New: Function: __ADO_Connection_IsOpen - mLipok
.           __ADO_Connection_IsOpen is a wrapper for __ADO_Connection_IsValid  which also check for $oConnection.state and set $ADO_ERR_ISCLOSEDOBJECT
.           __ADO_Connection_IsOpen is now used in few functions which uses $oConnection
.   Changed: Function: __ADO_Recordset_IsNotEmpty - checking $oRecordset.state and return $ADO_ERR_ISCLOSEDOBJECT - mLipok
.   Changed: Function: _ADO_Command_Execute - mlipok
.           Now return recordset
.   Changed: ADO_EXAMPLE.au3 - _Example_MSSQL_COMMAND_StoredProcedure() - mLipok
.   Removed: Function: _ADO_Connection_OpenJet - mLipok
.           Look for: _ADO_Connection_OpenConString or _ADO_ConnectionString_Excel

2016/03/08 '2.1.11 BETA'
.   New: Function: _ADO_OpenSchema_Catalogs - mLipok
.   New: Function: _ADO_OpenSchema_Tables - mLipok
.   New: Function: _ADO_OpenSchema_Columns - mLipok
.   New: Function: _ADO_OpenSchema_Indexes - mLipok
.   New: Function: _ADO_OpenSchema_Views - mLipok
.   New: Function: _ADO_Schema_GetAllCatalogs - mLipok
.   New: Function: _ADO_Schema_GetAllTables - mLipok
.   New: Function: _ADO_Schema_GetAllViews - mLipok
.   Removed: Function: _SQL_GetTableName - mLipok
.   Removed: Function: _ADO_Connection_OpenExcel - mLipok
.       Look for: _ADO_Connection_OpenConString and _ADO_ConnectionString_Excel
.   Changed: ADO_EXAMPLE.au3 - _Example_MySQL() - mLipok
.   Changed: ADO_EXAMPLE.au3 - _Example_PostgreSQL() - mLipok
.   Renamed: Function: _ADO_Command >> _ADO_Command_Create - mLipok
.   Changed: Function: _ADO_Command_Create: Parameters removed - $sQuery - mLipok
.   New: Function: _ADO_Command_CreateParameter - mlipok
.   New: Function: _ADO_Command_Execute - mlipok    .
.   Added: ADO_EXAMPLE.au3 - _Example_MSSQL_COMMAND_StoredProcedure() - mLipok

 

 


1 person likes this



User Feedback

You may only provide a review once you have downloaded the file.

There are no reviews to display.

  • Similar Content

    • S0lidFr0st
      SQL Query Manipulation
      By S0lidFr0st
      Hello! I'm fairly new to using Autoit, I like the language and simplicity, however, there is a bit of a learning curve for me. I'm stuck and need some community help!
      I need to manipulate a query by using GUICtrlCreateDate to select the correct date and pipe the selected date into my actual query in a specific format (yyyymmdd).
      Here is an example:
      _Flag_RecordsetDisplay($sConnectionString, "select * from trips_to_complete_20161122 where trip_type in ('P','C') and trip_status in ('S','PC','DC') and Flagged = 1") Func _Flag_RecordsetDisplay($sConnectionString, $sQUERY) ; Create connection object Local $oConnection = _ADO_Connection_Create() ; Open connection with $sConnectionString _ADO_Connection_OpenConString($oConnection, $sConnectionString) If @error Then Return SetError(@error, @extended, $ADO_RET_FAILURE) ; Executing some query directly to Array of Arrays (instead to $oRecordset) Local $aRecordset = _ADO_Execute($oConnection, $sQUERY, True) ; Clean Up _ADO_Connection_Close($oConnection) $oConnection = Null ; Display Array Content with column names as headers _ADO_Recordset_Display($aRecordset, 'Recordset content') EndFunc ;==>_Flag_RecordsetDisplay The part of the query that needs modified is "trips_to_complete_20161122" I need to be able to select a date (via the gui) and that selection pipe into my query.  
       
      Thanks in Advanced!
    • Aphotic
      Simple SQL Query Tool
      By Aphotic
      Hey Guys,
      I've been using AutoIT for about 3 years now, lurking the forums, scouring documentation, and creating things relevant to my job function.
      I work entry level IT and utilizing AutoIT has earned me much respect in the workplace. I made my first application on the level of sharing with the community that has no relevance to my company other than the data that is used with it.
      Our tech's were using development software to make simple pre-written queries. I was made aware of the process in order to assist in automating it. We found that the software they were using was being sunset in our environment so they'd need a replacement; and upon me realizing that they only needed a simple query tool, decided to 'homegrow' a simple app and save some hefty licensing fees.
      I built in some versatility to the SQL database you can connect to but it is only tested working with a Sybase 15 system (note the example connection string).
      I'd love to hear some suggestions and critique. I'm sure there are some editing functionalities that I could implement into the query edit box that I haven't bothered looking at. (other than CTRA+A to select all)
       
      Thanks guys!
      #include <WindowsConstants.au3> #include <GUIConstants.au3> #include <GUIConstantsEx.au3> #include <GuiEdit.au3> #include <GuiListView.au3> #include <File.au3> #include <Crypt.au3> #include <Date.au3> $oMyError = ObjEvent("AutoIt.Error","MyErrFunc") Local $unique = "SQL-Query-Tool" ;TO ALLOW ONLY ONE INSTANCE OF THE TOOL If WinExists($unique) Then MsgBox(0,'Duplicate Process', 'This script is already running....' & @CRLF & "If the window is not visible, terminate the process from Task Manager" & @CRLF & 'This instance will terminate after clicking OK') Exit EndIf AutoItWinSetTitle($unique) Local $fResized = False, $GUIs, $temp, $Qlist[0][3], $x, $selQ[2], $guics[4] Local $conName, $conStr, $conPW, $selC, $selConn, $sqlErr Local $fh Local $readme = "You may delete this entry if desired once other ." & @CRLF & _ "Although it is prefaced with 'zz' for sorting" & @CRLF & _ @CRLF & _ "-Select a Query from the drop-down" & @CRLF & _ "-Note: changing selection will not lose" & @CRLF & _ " changes made during this session" & @CRLF & _ "-Click Run Query to produce results" & @CRLF & _ @CRLF & _ "-Select from 'Query Options' to create new," & @CRLF & _ " edit name, save, and delete queries" & @CRLF & _ @CRLF & _ "-Click 'Connection Settings' to change" & @CRLF & _ " server settings" $conName = IniReadSection(@AppDataDir & "\SQL-Query-Tool\settings.ini", "Connection-Name") If @error = 1 Then DirCreate(@AppDataDir & "\SQL-Query-Tool\") IniWrite(@AppDataDir & "\SQL-Query-Tool\settings.ini", "Connection-Name", "1", "Connection_Name_Placeholder") IniWrite(@AppDataDir & "\SQL-Query-Tool\settings.ini", "Connection-String", "1", "Connection_String_Placeholder") IniWrite(@AppDataDir & "\SQL-Query-Tool\settings.ini", "Connection-Password", "1", "Connection_Password_Placeholder") EndIf $selConn = IniRead(@AppDataDir & "\SQL-Query-Tool\settings.ini", "Selected", "Number", "Placeholder") If $selConn = "Placeholder" Then DirCreate(@AppDataDir & "\SQL-Query-Tool\") IniWrite(@AppDataDir & "\SQL-Query-Tool\settings.ini", "Selected", "Number", "1") $selConn = 1 EndIf $temp = _FileListToArray(@AppDataDir & "\SQL-Query-Tool\Saved-Queries\") If @error = 1 Or @error = 4 Then DirCreate(@AppDataDir & "\SQL-Query-Tool\Saved-Queries\") FileWrite(@AppDataDir & "\SQL-Query-Tool\Saved-Queries\zz_Readme.txt", $readme) $temp = _FileListToArray(@AppDataDir & "\SQL-Query-Tool\Saved-Queries\") EndIf QueryLoad(False) $selQ[0] = $Qlist[1][0] Local $GUI = GUICreate("Simple SQL Query Tool", 260, 320, -1, -1, BitOR($WS_SIZEBOX,$WS_MINIMIZEBOX));, @DesktopWidth-275, @DesktopHeight-500) GUIRegisterMsg($WM_SIZE, 'MY_WM_SIZE') Local $querysel = GUICtrlCreateCombo("", 5, 5, 155, 25, $CBS_DROPDOWNLIST) GUICtrlSetData($querysel, $Qlist[0][1], $Qlist[1][0]) GUICtrlSetResizing(-1, 552) Local $queryopt = GUICtrlCreateCombo("Query Options", 165, 5, 90, 20, $CBS_DROPDOWNLIST) GUICtrlSetData($queryopt, "Save to File|New|Edit Name|Delete|Open Query Folder") GUICtrlSetResizing(-1, 552) Local $tab = GUICtrlCreateTab(5, 35, 235, 200) $qtab = GUICtrlCreateTabItem(" Query ") Local $query = GuiCtrlCreateEdit("", 10, 60, 240, 170) GUICtrlSetFont(-1, 9, 0, 0, "Lucida Console") GUICtrlSetData($query, $Qlist[1][1]) $rtab = GUICtrlCreateTabItem(" Results ") Local $result = GuiCtrlCreateEdit("", 10, 80, 240, 150) GUICtrlSetFont(-1, 9, 0, 0, "Lucida Console") Local $status = GUICtrlCreateLabel("Last Ran: None", 15, 62, 500) GUICtrlSetResizing(-1, 802) GUICtrlCreateTabItem("") Local $run = GUICtrlCreateButton("Run Query", 5, 270, 130, 25) GUICtrlSetResizing(-1, 584) Local $settings = GUICtrlCreateButton("Connection Settings", 140, 270, 115, 25) GUICtrlSetResizing(-1, 584) Local $consel = GUICtrlCreateCombo("", 5, 5, 390, 25, $CBS_DROPDOWNLIST) GUICtrlSetResizing(-1, 802) Local $newc = GUICtrlCreateButton("New", 400, 5, 40, 20) GUICtrlSetResizing(-1, 802) Local $edic = GUICtrlCreateButton("Edit", 445, 5, 40, 20) GUICtrlSetResizing(-1, 802) Local $delc = GUICtrlCreateButton("Delete", 490, 5, 40, 20) GUICtrlSetResizing(-1, 802) Local $test = GUICtrlCreateButton("Test Connection", 540, 5, 95, 20) GUICtrlSetResizing(-1, 802) Local $return = GUICtrlCreateButton("Return to Query", 640, 5, 95, 20) GUICtrlSetResizing(-1, 802) Local $divider = GUICtrlCreateLabel("",-5,30,760,3,BitOR($SS_SUNKEN,$WS_BORDER)) GUICtrlSetResizing(-1, 802) Local $cnamel = GUICtrlCreateLabel("Connection Name:", 15, 45) GUICtrlSetResizing(-1, 802) Local $cname = GUICtrlCreateInput("", 110, 41, 200, 20) GUICtrlSetResizing(-1, 802) Local $cstringl = GUICtrlCreateLabel(" Connection String" & @CRLF & _ "Replace your password with *PW*. For example:" & @CRLF & _ "Provider=ASEOLEDB;User ID=-USERID-;Password=*PW*;Data Source=-SERVER-:-PORT-;Initial Catalog=-DatabaseName-" & @CRLF & _ "If you need assistance with your specific connection string try using: https://www.connectionstrings.com/", 5, 70, 740, 60) GUICtrlSetResizing(-1, 802) Local $cstring = GUICtrlCreateInput("", 10, 125, 725, 20) GUICtrlSetResizing(-1, 802) Local $pwl = GUICtrlCreateLabel("Password:", 10, 165) GUICtrlSetResizing(-1, 802) Local $pw = GUICtrlCreateInput("", 65, 161, 340, 20, BitOR($ES_PASSWORD, $ES_AUTOHSCROLL)) GUICtrlSetResizing(-1, 802) Local $savc = GUICtrlCreateButton("Save", 480, 161, 100, 20) GUICtrlSetResizing(-1, 802) Local $canc = GUICtrlCreateButton("Cancel", 600, 161, 100, 20) GUICtrlSetResizing(-1, 802) Guimod("SETTINGS", $GUI_HIDE+1) GuiMod('SETTINGS-ENTRY', $GUI_DISABLE) $selC = $selConn GuiMod('RELOAD-CON') Local $hSelAll = GUICtrlCreateDummy() Dim $AccelKeys[1][2] = [["^a", $hSelAll]] GUISetAccelerators($AccelKeys, $GUI) GUISetState(@SW_SHOW) Local $nMsg While 1 $nMsg = GUIGetMsg() Switch $nMsg ;Checks if a button has been pressed Case $querysel $selQ[1] = GUICtrlRead($querysel) If $selQ[0] <> $selQ[1] Then QuerySelect() GUICtrlSetState($qtab, $GUI_SHOW) Case $queryopt Switch GUICtrlRead($queryopt) Case "Save to File" $fh = FileOpen(@AppDataDir & "\SQL-Query-Tool\Saved-Queries\" & GuiCtrlRead($querysel) & ".txt", 2) FileWrite($fh, GuiCtrlRead($query)) $Qlist[_ArraySearch($Qlist, GuiCtrlRead($querysel), 0, 0, 0, 0, 1, 0)][1] = GuiCtrlRead($query) $Qlist[_ArraySearch($Qlist, GuiCtrlRead($querysel), 0, 0, 0, 0, 1, 0)][2] = False GUICtrlSetData($qtab, " Query ") Case "New" $temp = InputBox("New Query Name","Enter a name for your new query." & @CRLF & "Please be aware only letters, numbers, underscores, and spaces are allowed." & @CRLF & "Symbols will be removed.", "", "", Default, Default, Default, Default, 0, $GUI) $temp = StringRegExpReplace($temp, "[^A-Za-z0-9 _]", "") If $temp <> "" And _ArraySearch($Qlist, $temp, 0, 0, 0, 0, 1, 0) = -1 Then FileWriteLine(@AppDataDir & "\SQL-Query-Tool\Saved-Queries\" & $temp & ".txt", "--First Line Placeholder") QueryLoad() GUICtrlSetData($querysel, "") GUICtrlSetData($querysel, $QList[0][1], $temp) $selQ[1] = GUICtrlRead($querysel) If $selQ[0] <> $selQ[1] Then QuerySelect() Else MsgBox(0,'Invalid Input','Invalid name entered. (Symbols and Duplicate Names are not allowed)', 0, $GUI) EndIf Case "Edit Name" $temp = InputBox("Edit Query name","Enter a new name for your query." & @CRLF & "Please be aware only letters, numbers, underscores, and spaces are allowed." & @CRLF & "Symbols will be removed.", GuiCtrlRead($querysel)) $temp = StringRegExpReplace($temp, "[^A-Za-z0-9 _]", "") If $temp <> "" And _ArraySearch($Qlist, $temp, 0, 0, 0, 0, 1, 0) = -1 Then FileMove(@AppDataDir & "\SQL-Query-Tool\Saved-Queries\" & GuiCtrlRead($querysel) & ".txt", @AppDataDir & "\SQL-Query-Tool\Saved-Queries\" & $temp & ".txt") $selQ[0] = $temp QueryLoad() GUICtrlSetData($querysel, "") GUICtrlSetData($querysel, $QList[0][1], $temp) $selQ[1] = GUICtrlRead($querysel) If $selQ[0] <> $selQ[1] Then QuerySelect() Else MsgBox(0,'Invalid Input','Invalid name entered. (Symbols and Duplicate Names are not allowed)', 0, $GUI) EndIf Case "Delete" If UBound($Qlist) = 2 Then MsgBox(0,'Deletion Error','You may not delete the only saved query', 0, $GUI) Else If MsgBox(4, 'Confirm Deletion', "Are you sure you want to delete the query named: " & @CRLF & GUICtrlRead($querysel), 0, $GUI) = 6 Then FileDelete(@AppDataDir & "\SQL-Query-Tool\Saved-Queries\" & GuiCtrlRead($querysel) & ".txt") QueryLoad() GUICtrlSetData($querysel, "") GUICtrlSetData($querysel, $QList[0][1], $Qlist[1][0]) $selQ[1] = GUICtrlRead($querysel) $selQ[0] = $selQ[1] GUICtrlSetData($query, $Qlist[1][1]) EndIf EndIf Case "Open Query Folder" ShellExecute(@AppDataDir & "\SQL-Query-Tool\Saved-Queries\") EndSwitch GUICtrlSetData($queryopt, 'Query Options', 'Query Options') Case $run GuiMod("RUNNING", $GUI_DISABLE) ToolTip("Executing SQL query, please wait...") $sqlCon = ObjCreate("ADODB.Connection") $sqlCon.Mode = 16 ; shared $sqlCon.CursorLocation = 3 ; client side cursor Local $connString = StringReplace(GuiCtrlRead($cstring), "*PW*", GuiCtrlRead($pw)) $sqlCon.Open($connString) If @error Then MsgBox(0, "Fail", "Failed to connect to the database") Else $sqlCon.CommandTimeout = 60 GUICtrlSetData($result, ProcessQuery(GuiCtrlRead($query))) GUICtrlSetState($rtab , $GUI_SHOW) GuiCtrlSetData($status, "Last Ran: " & GuiCtrlRead($querysel) & " - " & StringRight(_NowCalc(), 8)) EndIf ToolTip("") GuiMod("RUNNING", $GUI_ENABLE) Case $settings ToolTip("Loading...") $selC = $selConn GuiMod('MAIN', $GUI_HIDE) GuiMod('RELOAD-CON') GuiMod('SETTINGS', $GUI_SHOW) ToolTip("") Case $consel If GUICtrlRead($consel) <> $selC Then $selC = _ArraySearch($conName, GUICtrlRead($consel), 0, 0, 0, 0, 1, 1) GUICtrlSetData($cname, $conName[$selC][1]) GUICtrlSetData($cString, $conStr[$selC][1]) GUICtrlSetData($pw, StringEncrypt(False, $conPW[$selC][1])) $selC = GUICtrlRead($consel) EndIf Case $newc GuiMod('SETTINGS-SELECT', $GUI_DISABLE) GuiMod('SETTINGS-ENTRY', $GUI_ENABLE) GuiCtrlSetData($consel, '*New-Connection-Entry*', '*New-Connection-Entry*') GuiCtrlSetData($cname, '') GuiCtrlSetData($cString, '') GuiCtrlSetData($pw, '') $selC = -1 Case $edic GuiMod('SETTINGS-SELECT', $GUI_DISABLE) GuiMod('SETTINGS-ENTRY', $GUI_ENABLE) $selC = GUICtrlRead($consel) _ArrayDisplay($conName, "2") $selC = _ArraySearch($conName, $selC, 0, 0, 0, 0, 1, 1) GuiCtrlSetData($cname, $conName[$selC][1]) $conName[$selC][1] &= "*" GuiCtrlSetData($cString, $conStr[$selC][1]) GuiCtrlSetData($pw, StringEncrypt(False, $conPW[$selC][1])) Case $delc If UBound($conName) = 2 Then MsgBox(0,'Error','You can not delete the only connection setting.', 0, $GUI) Else $selC = GuiCtrlRead($consel) If MsgBox(4, 'Confirm Deletion', 'Are you sure you want to delete the connection: ' & $selC, 0, $GUI) = 6 Then ToolTip('Loading...') $selC = _ArraySearch($conName, $selC, 0, 0, 0, 0, 1, 1) $conName[$selC][1] = '*!*BLANK*!*' $conStr[$selC][1] = '*!*BLANK*!*' $conPW[$selC][1] = '*!*BLANK*!*' IniWriteSection(@AppDataDir & "\SQL-Query-Tool\settings.ini", "Connection-Name", $conName) IniWriteSection(@AppDataDir & "\SQL-Query-Tool\settings.ini", "Connection-String", $conStr) IniWriteSection(@AppDataDir & "\SQL-Query-Tool\settings.ini", "Connection-Password", $conPW) GuiMod('RELOAD-CON') ToolTip('') EndIf EndIf Case $savc If GuiCtrlRead($cname) = "" Or _ArraySearch($conName, GuiCtrlRead($cname), 0, 0, 0, 0, 1, 1) > -1 Then MsgBox(0,'Invalid Input',"You can't have a blank connection name or two connections with the same name", 0, $GUI) Else ToolTip("Loading...") If $selC = -1 Then For $i = 1 To UBound($conName)-1 If $conName[$i][1] = '*!*BLANK*!*' Then $selC = $i $conName[$i][1] = GuiCtrlRead($cname) $conStr[$i][1] = GuiCtrlRead($cstring) $conPW[$i][1] = StringEncrypt(True, GuiCtrlRead($pw)) ExitLoop ElseIf $i = UBound($conName)-1 Then $selC = UBound($conName) _ArrayAdd($conName, UBound($conName) & "|" & GuiCtrlRead($cname)) _ArrayAdd($conStr, UBound($conStr) & "|" & GuiCtrlRead($cstring)) _ArrayAdd($conPW, UBound($conPW) & "|" & StringEncrypt(True, GuiCtrlRead($pw))) EndIf Next Else $conName[$selC][1] = GuiCtrlRead($cname) $conStr[$selC][1] = GuiCtrlRead($cstring) $conPW[$selC][1] = StringEncrypt(True, GuiCtrlRead($pw)) EndIf IniWriteSection(@AppDataDir & "\SQL-Query-Tool\settings.ini", "Connection-Name", $conName) IniWriteSection(@AppDataDir & "\SQL-Query-Tool\settings.ini", "Connection-String", $conStr) IniWriteSection(@AppDataDir & "\SQL-Query-Tool\settings.ini", "Connection-Password", $conPW) GuiMod('SETTINGS-SELECT', $GUI_ENABLE) GuiMod('SETTINGS-ENTRY', $GUI_DISABLE) GuiMod('RELOAD-CON') ToolTip('') EndIf Case $canc ToolTip("Loading...") GuiMod('SETTINGS-SELECT', $GUI_ENABLE) GuiMod('SETTINGS-ENTRY', $GUI_DISABLE) GuiMod('RELOAD-CON') ToolTip('') Case $test $sqlCon = ObjCreate("ADODB.Connection") $sqlCon.Mode = 16 ; shared $sqlCon.CursorLocation = 3 ; client side cursor Local $connString = StringReplace(GuiCtrlRead($cstring), "*PW*", GuiCtrlRead($pw)) $sqlCon.Open($connString) If @error Then MsgBox(0, "Fail", "Failed to connect to the database") Else MsgBox(0, "Success", "Successfully connected to the database") EndIf Case $return $selConn = _ArraySearch($conName, $selC, 0, 0, 0, 0, 1, 1) IniWrite(@AppDataDir & "\SQL-Query-Tool\settings.ini", "Selected", "Number", $selConn) GuiMod('SETTINGS', $GUI_HIDE) GuiMod('MAIN', $GUI_SHOW) Case $hSelAll _SelectAllTextInEdit() Case $GUI_EVENT_CLOSE Exit EndSwitch If $fResized Then GuiMod('RESIZE') $fResized = False EndIf If $guics[0] = True Then _Input_Check($cname) WEnd Func QuerySelect() Local $oldp = _ArraySearch($Qlist, $selQ[0], 0, 0, 0, 0, 1, 0) Local $old = GuiCtrlRead($query) If $Qlist[$oldp][1] <> $old Then $Qlist[$oldp][1] = $old $Qlist[$oldp][2] = True EndIf Local $newp = _ArraySearch($Qlist, $selQ[1], 0, 0, 0, 0, 1, 0) GUICtrlSetData($query, $Qlist[$newp][1]) $selQ[0] = $selQ[1] If $Qlist[$newp][2] = False Then GUICtrlSetData($qtab, " Query ") Else GUICtrlSetData($qtab, " Query (unsaved) ") EndIf EndFunc Func QueryLoad($reload = True) Local $qFiles = _FileListToArray(@AppDataDir & "\SQL-Query-Tool\Saved-Queries\") Local $tQlist[UBound($qFiles)][3] Local $selT $tQlist[0][0] = $qFiles[0] $tQlist[0][1] = "" For $i = 1 To $tQlist[0][0] $tQlist[$i][0] = StringTrimRight($qFiles[$i], 4) If $reload Then $selT = _ArraySearch($Qlist, $tQlist[$i][0], 0, 0, 0, 0, 1, 0) If $selT > -1 Then $tQlist[$i][1] = $Qlist[$selT][1] $tQlist[$i][2] = $Qlist[$selT][2] Else $tQlist[$i][1] = FileRead(@AppDataDir & "\SQL-Query-Tool\Saved-Queries\" & $qFiles[$i]) $tQlist[$i][2] = False EndIf Else $tQlist[$i][1] = FileRead(@AppDataDir & "\SQL-Query-Tool\Saved-Queries\" & $qFiles[$i]) $tQlist[$i][2] = False EndIf $tQlist[0][1] &= StringTrimRight($qFiles[$i], 4) If $i < $tQlist[0][0] Then $tQlist[0][1] &= "|" Next $Qlist = $tQlist EndFunc Func ProcessQuery($input) Local $resultO = $sqlCon.Execute($input) If Not @error Then Local $resultT = "" Local $recordE = 0 Local $resultA[2][0] Local $i, $z While $recordE = 0 and IsObj($resultO) Redim $resultA[2][0] For $oField In $resultO.Fields Redim $resultA[2][UBound($resultA, 2)+1] $resultA[1][UBound($resultA, 2)-1] = $oField.Name Next ReDim $resultA[UBound($resultA)+1][UBound($resultA, 2)] While Not $resultO.EOF ReDim $resultA[UBound($resultA)+1][UBound($resultA, 2)] $i = 0 For $oField in $resultO.Fields $resultA[UBound($resultA)-1][$i] = StringStripWS(StringStripWS($oField.Value, 1), 2) $i += 1 Next $resultO.MoveNext WEnd For $i = 0 To UBound($resultA, 2)-1 $z = 0 For $x = 1 To UBound($resultA)-1 If StringLen($resultA[$x][$i]) > $z Then $z = StringLen($resultA[$x][$i]) Next $resultA[0][$i] = $z Next For $i = 0 To UBound($resultA, 2)-1 $z = "" For $x = 1 To $resultA[0][$i] + 4 $z &= "-" Next $resultA[2][$i] = $z Next For $x = 1 To UBound($resultA)-1 For $i = 0 To UBound($resultA, 2)-1 $resultT &= $resultA[$x][$i] For $z = StringLen($resultA[$x][$i]) To $resultA[0][$i] + 4 $resultT &= " " Next Next $resultT &= @CRLF Next $resultT &= @CRLF & "Total Lines Returned: " & UBound($resultA)-3 & @CRLF $resultT &= "__________________________________________________________" & @CRLF & @CRLF & @CRLF $resultO = $resultO.NextRecordset $recordE = @error WEnd $resultO.Close Else Local $resultT = $sqlErr EndIf Return $resultT EndFunc Func GuiMod($action, $toggle = 0) Switch $action Case 'RESIZE' If ($GUIs[2] < 266 or $GUIs[3] < 306) And $guics[0] = False Then WinMove($GUI, '', $GUIs[0], $GUIs[1], 276, 336) GUICtrlSetPos($tab, 5, 35, $GUIs[2] - 25, $GUIs[3] - 106) GUICtrlSetPos($query, 10, 60, $GUIs[2] - 36, $GUIs[3] - 136) GUICtrlSetPos($result, 10, 80, $GUIs[2] - 36, $GUIs[3] - 156) GUICtrlSetPos($result, 10, 80) Case 'MAIN' GUICtrlSetState($querysel, $toggle) GUICtrlSetState($queryopt, $toggle) GUICtrlSetState($tab, $toggle) GUICtrlSetState($query, $toggle) GUICtrlSetState($result, $toggle) GUICtrlSetState($status, $toggle) GUICtrlSetState($run, $toggle) GUICtrlSetState($settings, $toggle) Case 'SETTINGS' If $toggle = $GUI_SHOW Then GUISetStyle(BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_SYSMENU)) $GUIs = WinGetPos($GUI) $guics[0] = True $guics[1] = $GUIs[2] $guics[2] = $GUIs[3] $guics[3] = $GUIs[0] WinMove($GUI, '', 25, $GUIs[1], 750, 221) ElseIf $toggle = $GUI_HIDE Then GUISetStyle(BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_SYSMENU, $WS_SIZEBOX)) $guics[0] = False WinMove($GUI, '', $guics[3], Default, $guics[1], $guics[2]) ElseIf $toggle = $GUI_HIDE+1 Then $toggle -= 1 EndIf GUICtrlSetState($consel, $toggle) GUICtrlSetState($newc, $toggle) GUICtrlSetState($edic, $toggle) GUICtrlSetState($delc, $toggle) GUICtrlSetState($test, $toggle) GUICtrlSetState($return, $toggle) GUICtrlSetState($divider, $toggle) GUICtrlSetState($cnamel, $toggle) GUICtrlSetState($cname, $toggle) GUICtrlSetState($cstringl, $toggle) GUICtrlSetState($cstring, $toggle) GUICtrlSetState($pwl, $toggle) GUICtrlSetState($pw, $toggle) GUICtrlSetState($savc, $toggle) GUICtrlSetState($canc, $toggle) Case 'SETTINGS-SELECT' GUICtrlSetState($consel, $toggle) GUICtrlSetState($newc, $toggle) GUICtrlSetState($edic, $toggle) GUICtrlSetState($delc, $toggle) GUICtrlSetState($test, $toggle) GUICtrlSetState($return, $toggle) Case 'SETTINGS-ENTRY' GUICtrlSetState($cnamel, $toggle) GUICtrlSetState($cname, $toggle) GUICtrlSetState($cstringl, $toggle) GUICtrlSetState($cstring, $toggle) GUICtrlSetState($pwl, $toggle) GUICtrlSetState($pw, $toggle) GUICtrlSetState($savc, $toggle) GUICtrlSetState($canc, $toggle) Case 'RUNNING' GUICtrlSetState($querysel, $toggle) GUICtrlSetState($queryopt, $toggle) GUICtrlSetState($query, $toggle) GUICtrlSetState($tab, $toggle) GUICtrlSetState($result, $toggle) GUICtrlSetState($run, $toggle) GUICtrlSetState($settings, $toggle) Case 'RELOAD-CON' $conName = IniReadSection(@AppDataDir & "\SQL-Query-Tool\settings.ini", "Connection-Name") $conStr = IniReadSection(@AppDataDir & "\SQL-Query-Tool\settings.ini", "Connection-String") $conPW = IniReadSection(@AppDataDir & "\SQL-Query-Tool\settings.ini", "Connection-Password") Local $sC = $conName _ArraySort($sC, 0, 1, 0, 1) GUICtrlSetData($consel, "") If $conName[$selC][1] <> "*!*BLANK*!*" Then GuiCtrlSetData($cname, $conName[$selC][1]) GuiCtrlSetData($cString, $conStr[$selC][1]) GuiCtrlSetData($pw, StringEncrypt(False, $conPW[$selC][1])) $selC = $conName[$selC][1] Else For $i = 1 To UBound($sC)-1 If $sC[$i][1] <> '*!*BLANK*!*' Then GuiCtrlSetData($cname, $sC[$i][1]) GuiCtrlSetData($cString, $conStr[$sC[$i][0]][1]) GuiCtrlSetData($pw, StringEncrypt(False, $conPW[$sC[$i][0]][1])) $selC = $sC[$i][1] ExitLoop EndIf Next EndIf For $i = 1 To UBound($sC)-1 If $sC[$i][1] <> '*!*BLANK*!*' Then GUICtrlSetData($consel, $sC[$i][1], $selC) Next EndSwitch EndFunc Func MY_WM_SIZE($hWnd, $Msg, $wParam, $lParam) $GUIs = WinGetPos($GUI) $fResized = True Return $GUI_RUNDEFMSG EndFunc ;==>MY_WM_SIZE Func StringEncrypt($bEncrypt, $sData, $sPassword = 'SQL') If $sData = "" Then Return '' _Crypt_Startup() ; Start the Crypt library. Local $sReturn = '' If $bEncrypt Then ; If the flag is set to True then encrypt, otherwise decrypt. $sReturn = _Crypt_EncryptData($sData, $sPassword, $CALG_RC4) Else $sReturn = BinaryToString(_Crypt_DecryptData($sData, $sPassword, $CALG_RC4)) EndIf _Crypt_Shutdown() ; Shutdown the Crypt library. Return $sReturn EndFunc ;==>StringEncrypt Func _Input_Check($hInput) Local $sText = GUICtrlRead($hInput) If StringRegExp($sText, "[^A-Za-z0-9 _]") Then GUICtrlSetData($hInput, StringRegExpReplace($sText, "[^A-Za-z0-9 _]", "")) EndFunc Func _SelectAllTextInEdit();will make select all text in any focused edit Local $theHandle = _WinAPI_GetFocus() Local $TheClass = _WinAPI_GetClassName($theHandle) If $TheClass = 'Edit' Then _GUICtrlEdit_SetSel($theHandle, 0, -1) EndFunc Func MyErrFunc() $HexNumber=hex($oMyError.number,8) $sqlErr = "We intercepted a COM Error !" & @CRLF & @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(1) ; to check for after this function returns Endfunc  
    • skybax
      Array to Listview
      By skybax
      Good morning all,
      I have a question regarding a situation im in...
       
      I have an array with information from sql query, how can i send this information to a listview ?
       
      $citeste_daune = "SELECT `id_dauna`,`data_incident`,`sala`,`autor`,`suma` FROM `daune` WHERE `status`=1;" $sa_citit_daune = _query($sqlinstance, $citeste_daune) Global $aresult[10001][5] = [[10000, 5]] Global $iindex = 0 With $sa_citit_daune While NOT .eof $aresult[$iindex][0] = .fields("id_dauna").value $aresult[$iindex][1] = .fields("data_incident").value $aresult[$iindex][2] = .fields("sala").value $aresult[$iindex][3] = .fields("autor").value $aresult[$iindex][4] = .fields("suma").value $iindex = $iindex + 1 .movenext WEnd EndWith ReDim $aresult[$iindex][5] $aresult[0][0] = $iindex - 1 _ArrayDisplay($aresult) GUICtrlCreateListViewItem(_ArrayToString($aresult), $lista_daune_active)  
      This is what i see when i execure _ArrayDisplay($aresult)

    • Queener
      Retreiving data from SQL
      By Queener
      Using the MSSQL.udf
      I asked this question once, but haven't had a chance to reply to my old post so posting a new one instead of bouncing the old post.
      I'm trying to retrieve data from my database in Microsoft SQL Server 2014. When I tried the code below; empty message box return and no error approaches.
      $Connection = _MSSQL_Con($ServerAddress, $ServerUsername, $ServerPassword, $ServerDBName) $Testquery = _MSSQL_Query($Connection, "SELECT User_ID From Banker where Manager like '%Jason%'") msgbox(0, "Test", $Testquery) exit
    • Ahile07
      SQL lack of knowledge
      By Ahile07
      Hello guys,
      maybe some of you can help me. I manage to connect with sql database and use a variable to search for different things when i do the select from database. My problem is that i'm reading the database with an MsgBox to see the values. But sometimes for the thing i'm filtering the dabase for it shows me different values and i only one to select one of it and move forward with my script. Is there any chance to read the database...view it...and in front of each value to have a thick box to select with value i want for the line.
      After i select the the line value i want to stock the values from each column in different variables and then i want to send them as values to write in another database.
      Is this possible?
      Hope any of you can help me in this matter
      Apreciate guys.