Jump to content

Error on $output[$count]


Recommended Posts

Hello

I am trying to figure out why I am getting the error:

Array variable has incorrect number of subscripts or subscript dimension range is incorrect

And how to fix it.

Here is my code:

Func mysql($branch) ; , $element)
; establish an array with too many elements
Local $output[80]

; establish a counter starting at zero
$count = 0


; put query together
$sql = _MySQLConnect("DHCP","1234","test","192.168.26.18")
$var = _Query($sql,"SELECT * FROM Leases WHERE Branch='" & $branch & "'")

With $var


;loop through the query result
While NOT .EOF

;put data into array
$output[$count]=.Fields("IP").value ; This is where the error is.


;increment the counter
$count += 1

; end of the loop
wend

; resize the array to the number of elements
ReDim $output[$count]
EndWith
; return the proper sized array
return $output
EndFunc

Thanks

Grimm

Edited by grimmlock

Thanks

Grimm

Link to comment
Share on other sites

Shouldn't it be something like this?

$output[$count]= $oVar.Fields("IP").value

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

It was an example, I presume it should be $var, but I have little knowledge of SQL. Sorry.

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

Here is the entire code:

#include <GUIConstantsEx.au3>
#include <GUIConstants.au3>
#include <File.au3>
#include <Array.au3>
#include <mysql.au3>

GUICreate("test", 400, 400)
GUISetState(@SW_SHOW)

Local $Combo = GUICtrlCreateCombo("", 10, 10, 100, 20)
GUICtrlSetData(-1, "Branch1|Branch2") ; So you have all the lists able to be selected from the combo
Local $List1 = GUICtrlCreateList("", 10, 50, 100, 50)
Local $List2 = GuiCtrlCreateList("", 10, 100, 100, 50)
Local $List3 = GuiCtrlCreateList("", 10, 150, 100, 50)
Local $Button_1 = GUICtrlCreateButton("Notepad", 200, 50, 100, 100)
Local $Button_2 = GUICtrlCreateButton("Wake On Lan", 200, 200, 100, 100)



While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit


Case $Combo
Switch GuiCtrlRead($Combo)

Case "Buena"
Local $ip = mysql("Branch1")
Local $mac = mysql("Branch1")

MsgBox(0, "", GuiCtrlRead($ip[3]))
;~ GuiCtrlSetData($List1, $ip[3])


EndSwitch

Case $Button_1


Case $Button_2


EndSwitch
WEnd

Func mysql($branch) ;, $element)
; establish an array with too many elements
Local $output[80]

; establish a counter starting at zero
$count = 0


; put query together
$sql = _MySQLConnect("DHCP","1234","test","192.168.26.18")
$var = _Query($sql,"SELECT * FROM Leases WHERE Branch='" & $branch & "'")

With $var


;loop through the query result
While NOT .EOF

;put data into array
$output[$count] = .Fields("Name").value


;increment the counter
$count += 1

; end of the loop
wend

; resize the array to the number of elements
;~ ReDim $output[$count]
EndWith
; return the proper sized array
return $output

EndFunc
Edited by grimmlock

Thanks

Grimm

Link to comment
Share on other sites

Try adding: .MoveNext to your loop to move on to the next record.

Does this work better?

#include <GUIConstantsEx.au3>
#include <GUIConstants.au3>
#include <File.au3>
#include <Array.au3>
#include <mysql.au3>

GUICreate("test", 400, 400)
GUISetState(@SW_SHOW)

Local $Combo = GUICtrlCreateCombo("", 10, 10, 100, 20)
GUICtrlSetData(-1, "Branch1|Branch2") ; So you have all the lists able to be selected from the combo
Local $List1 = GUICtrlCreateList("", 10, 50, 100, 50)
Local $List2 = GUICtrlCreateList("", 10, 100, 100, 50)
Local $List3 = GUICtrlCreateList("", 10, 150, 100, 50)
Local $Button_1 = GUICtrlCreateButton("Notepad", 200, 50, 100, 100)
Local $Button_2 = GUICtrlCreateButton("Wake On Lan", 200, 200, 100, 100)



While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit


        Case $Combo
            Switch GUICtrlRead($Combo)

                Case "Buena"
                    Local $ip = mysql("Branch1")
                    Local $mac = mysql("Branch1")

                    MsgBox(0, "", GUICtrlRead($ip[3]))
;~ GuiCtrlSetData($List1, $ip[3])


            EndSwitch

        Case $Button_1


        Case $Button_2


    EndSwitch
WEnd

Func mysql($branch) ;, $element)
    ; establish an array with too many elements
    Local $output[80]

    ; establish a counter starting at zero
    $count = 0


    ; put query together
    $sql = _MySQLConnect("DHCP", "1234", "test", "192.168.26.18")
    $var = _Query($sql, "SELECT * FROM Leases WHERE Branch='" & $branch & "'")

    With $var


        ;loop through the query result
        While Not .EOF

            ;put data into array
            $output[$count] = .Fields("Name").value

            ;Move to next record
            .MoveNext

            ;increment the counter
            $count += 1

            ; end of the loop
        WEnd

        ; resize the array to the number of elements
;~ ReDim $output[$count]
    EndWith
    ; return the proper sized array
    Return $output

EndFunc   ;==>mysql
Edited by danwilli
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

×
×
  • Create New...