Jump to content

Mysql Problems


KillaH
 Share

Recommended Posts

Hi all ^^

Ive tried coding a mqsl thingy and it works perfect on localhost :graduated:

ive asked a friend if i may connect to his server to try and i get a id and pass on phpMyAdmin, created my database in there.

Then when i wanted to connect with the correct info it gives the com error or before it gave ->

C:\Program Files (x86)\AutoIt3\Include\mysql.au3 (27) : ==> The requested action with this object has failed.:

$Objconn.open ("DRIVER=" & $sDriver & ";SERVER=" & $sServer & ";DATABASE=" & $sDatabase & ";UID=" & $sUsername & ";PWD=" & $sPassword & ";PORT="&$iPort)

$Objconn.open ("DRIVER=" & $sDriver & ";SERVER=" & $sServer & ";DATABASE=" & $sDatabase & ";UID=" & $sUsername & ";PWD=" & $sPassword & ";PORT="&$iPort)^ ERROR

Ive installed the 5.1 driver like they asked !

ive just don't know what to do :D

maybe i need other functions towork with phpmyadmin

please help me, don't tell me to search n autoit because im doing it for 2 days now to get a fix for this problem but nobody knows it i think :(

heres my code incase you need it xD

;~ Func CreateAccount()
;~  $Id = GUICtrlRead($Input3)
;~  $Password = GUICtrlRead($Input4)
;~  $HWId = DriveGetSerial("c:\")
;~  $Status = "Not Active"
;~  $lala = mysql_check_login2($Id, $HWId)
;~  If $lala = True Then
;~      If $Id <> "" And $Password <> "" Then
;~          $lala = mysql_add_user($Id, $Password, $HWId, $Status)
;~          If $lala = True Then
;~              MsgBox(0, "Auto-Staller", "Account created")

;~              GUICtrlSetData($Input1, $Id)
;~              GUICtrlSetData($Input2, $Password)
;~              GUICtrlSetData($Input3, "")
;~              GUICtrlSetData($Input4, "")
;~          Else
;~              MsgBox(0, "Auto-Staller", "Account creation Failed")
;~          EndIf
;~      Else
;~          MsgBox(0, "Auto-Staller", "Please fill in your Username and password")
;~      EndIf
;~  EndIf
;~ EndFunc   ;==>CreateAccount

;~ Func Login()
;~  $Id = GUICtrlRead($Input1)
;~  $Password = GUICtrlRead($Input2)
;~  $HWId = DriveGetSerial("c:\")
;~  $lala = mysql_check_login($Id, $Password, $HWId)
;~  If $Id = "" And $Password = "" Then
;~      MsgBox(0, "Auto-Staller", "Please fill in your Username and password")
;~  EndIf
;~  If $lala = True Then
;~      $ExitLoop = 1
;~  EndIf
;~ EndFunc   ;==>Login

;~ Func MyErrFunc()
;~  $HexNumber = Hex($oMyError.number, 8)
;~  MsgBox(0, "COM Error", "COM Error Details:" & @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)
;~ EndFunc   ;==>MyErrFunc

;~ ;; Maakt verbinding met database
;~ ; @return    True    indien verbinding succesvol
;~ ;            False   indien verbinding mislukt
;~ Func mysql_connect()
;~  $host = "autostaller.db.a special number here.hostedresource.com"
;~  $user = "lalalala"
;~  $pass = "blalalalal"
;~  $database = "hmmm"

;~  $link = _MySQLConnect($user, $pass, $database, $host)

;~  if ($link <> 0) Then
;~      Return True
;~  EndIf

;~  MsgBox(0, "ERROR", "COULD not connect to the Database: " & @error)
;~  Exit

;~  Return False
;~ EndFunc   ;==>mysql_connect

;~ Func mysql_close()
;~  _MySQLEnd($link)
;~ EndFunc   ;==>mysql_close

;~ ;; Voegt user toe aan databank
;~ ; @return    False   indien mislukt
;~ ;            True    indien succesvol
;~ Func mysql_add_user($username, $Password, $hardware_id, $Status)
;~  if (mysql_connect()) Then

;~      $query = _Query($link, "INSERT INTO users VALUES ('" & $username & "','" & tomtom_encrypt_pass($username, $Password) & "', '" & $hardware_id & "', '" & $Status & "')") ;tomtom is terug te vinden op pag 908 op datum 5/11/2010 xD

;~      mysql_close()

;~      if ($query <> 0) Then
;~          Return True
;~      EndIf
;~  EndIf

;~  Return False
;~ EndFunc   ;==>mysql_add_user

;~ ;; Checkt of login gegegevens juist zijn
;~ ;;
;~ ;; @return   true    als juist
;~ ;;           False   als fout
;~ Func mysql_check_login($username, $Password, $hardware_id)
;~  $UsernameNumber = 0
;~  $PasswordNumber = 0
;~  $HwidNumber = 0

;~  $Password = tomtom_encrypt_pass($username, $Password)

;~  if (mysql_connect()) Then
;       $query = _Query($link, "SELECT * FROM users WHERE username='" & $username & "' AND password='" & $Password & "' AND hardware_id='" & $hardware_id & "'")
;~      $query1 = _GetColVals($link, "Accounts", "username")
;~      If Not @error Then
;~          If $query1[0] <> 0 Then
;~              For $i = 1 To $query1[0] Step +1
;~                  If $query1[$i] = $username Then
;~                      $UsernameNumber = $i
;~                      ExitLoop
;~                  EndIf
;~              Next
;~              If $UsernameNumber = 0 Then
;~                  MsgBox(0, "", "Account doesn't exists or wrong password")
;~                  GUISetState(@SW_SHOW)
;~                  Return False
;~              EndIf
;~          EndIf
;~      EndIf
;~      $query2 = _GetColVals($link, "Accounts", "password")
;~      If Not @error Then
;~          If $query2[0] <> 0 Then
;~              For $i = 1 To $query2[0] Step +1
;~                  If $query2[$i] = $Password Then
;~                      $PasswordNumber = $i
;~                      ExitLoop
;~                  EndIf
;~              Next
;~              If $PasswordNumber = 0 Then
;~                  MsgBox(0, "", "Account doesn't exists or wrong password")
;~                  GUISetState(@SW_SHOW)
;~                  Return False
;~              EndIf
;~          EndIf
;~      EndIf
;~      $HWId = DriveGetSerial("c:\")
;~      $query3 = _GetColVals($link, "Accounts", "hardware_id")
;~      If Not @error Then
;~          If $query3[0] <> 0 Then
;~              For $i = 1 To $query3[0] Step +1
;~                  If $query3[$i] = $HWId Then
;~                      $HwidNumber = $i
;~                      ExitLoop
;~                  EndIf
;~              Next
;~              If $HwidNumber = 0 Then
;~                  If Not IsDeclared("iMsgBoxAnswer") Then Local $iMsgBoxAnswer
;~                  $iMsgBoxAnswer = MsgBox(36, "Account info correct but wrong Hardware_ID", "Do you want to remove your other account")
;~                  Select
;~                      Case $iMsgBoxAnswer = 6 ;Yes
;~                          _DeleteRecord($link, "Accounts", "username", $username, 1)
;~                          MsgBox(0, "", "Account Deleted")
;~                          Return False
;~                  EndSelect
;~                  Return False
;~              EndIf
;~          EndIf
;~      EndIf
;~      If $UsernameNumber = $PasswordNumber And $HwidNumber = $PasswordNumber And $UsernameNumber <> 0 And $PasswordNumber <> 0 And $HwidNumber <> 0 Then
;~          Return True
;~      EndIf
;~  EndIf
;~  Return False
;~ EndFunc   ;==>mysql_check_login

;~ Func mysql_check_login2($username, $hardware_id)
;~  $UsernameNumber = 0
;~  $PasswordNumber = 0
;~  $HwidNumber = 0
;~  if (mysql_connect()) Then
;       $query = _Query($link, "SELECT * FROM Accounts WHERE username='" & $username & "' AND password='" & $Password & "' AND hardware_id='" & $hardware_id & "'")
;~      $query1 = _GetColVals($link, "Accounts", "username")
;~      If Not @error Then
;~          If $query1[0] <> 0 Then
;~              For $i = 1 To $query1[0] Step +1
;~                  If $query1[$i] = $username Then
;~                      $UsernameNumber = $i
;~                      ExitLoop
;~                  EndIf
;~              Next
;~              If $UsernameNumber >= 1 Then
;~                  MsgBox(0, "", "Account already exists")
;~                  Return False
;~              EndIf
;~          EndIf
;~      EndIf
;~      $HWId = DriveGetSerial("c:\")
;~      $query3 = _GetColVals($link, "Accounts", "hardware_id")
;~      If Not @error Then
;~          If $query3[0] <> 0 Then
;~              For $i = 1 To $query3[0] Step +1
;~                  If $query3[$i] = $HWId Then
;~                      $HwidNumber = $i
;~                      ExitLoop
;~                  EndIf
;~              Next
;~              If $HwidNumber >= 1 Then
;~                  MsgBox(0, "", "You already made an account on this pc")
;~                  If Not IsDeclared("iMsgBoxAnswer") Then Local $iMsgBoxAnswer
;~                  $iMsgBoxAnswer = MsgBox(36, "You already made an account on this pc !", "Do you want to remove your other account and create a new 1 ?")
;~                  Select
;~                      Case $iMsgBoxAnswer = 6 ;Yes
;~                          _DeleteRecord($link, "Accounts", "hardware_id", $HWId, 1)
;~                          MsgBox(0, "", "Deleted Account")
;~                          Return True
;~                  EndSelect
;~                  Return False
;~              EndIf
;~          EndIf
;~      EndIf
;~      If $UsernameNumber = $HwidNumber And $UsernameNumber = 0 And $HwidNumber = 0 Then
;~          Return True
;~      EndIf
;~  EndIf
;~  Return False
;~ EndFunc   ;==>mysql_check_login2

mysql include

#include-once

#cs
    Function Name:    _MySQLConnect
    Description:      Initiate a connection to a MySQL database.
    Parameter(s):     $username - The username to connect to the database with.
    $password - The password to connect to the database with. $Database - Database to connect to.
    $server - The server your database is on.
    $driver (optional) the ODBC driver to use (default is "{MySQL ODBC 3.51 Driver}"
    Requirement(s):   Autoit 3 with COM support
    Return Value(s):  On success returns the connection object for subsequent functions. On failure returns 0 and sets @error
    @Error = 1
    Error opening connection
    @Error = 2
    MySQL ODBC Driver not installed.
    Author(s):        cdkid
#ce

Func _MySQLConnect($sUsername, $sPassword, $sDatabase, $sServer, $sDriver = "{MySQL ODBC 5.1 Driver}", $iPort=3306)
    Local $v = StringMid($sDriver, 2, StringLen($sDriver) - 2)
    Local $key = "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers", $val = RegRead($key, $v)
    If @error or $val = "" Then
        SetError(2)
        Return 0
    EndIf
    $ObjConn = ObjCreate("ADODB.Connection")
    $Objconn.open ("DRIVER=" & $sDriver & ";SERVER=" & $sServer & ";DATABASE=" & $sDatabase & ";UID=" & $sUsername & ";PWD=" & $sPassword & ";PORT="&$iPort)
    If @error Then
        SetError(1)
        Return 0
    Else
        Return $ObjConn
    EndIf
EndFunc   ;==>_MySQLConnect

#cs
    Function name: _Query
    Description:     Send a query to the database
    Parameter(s):  $oConnectionObj - As returned by _MySQLConnect. $query - The query to execute
    Return Value(s):On success returns the query result. On failure returns 0 and sets @error to 1
    Requirement(s):Autoit3 with COM support
    Author(s):        cdid
#ce


Func _Query($oConnectionObj, $sQuery)
    If IsObj($oConnectionObj) Then
        Return $oConnectionobj.execute ($sQuery)
    EndIf
    If @error Then
        SetError(1)
        Return 0
    EndIf

EndFunc   ;==>_Query

#cs
    Function name: _MySQLEnd
    Description:      Closes the database connection (see notes!)
    Parameter(s):   $oConnectionObj - The connection object as returned by _MySQLConnect()
    Requirement(s):Autoit 3 with COM support
    Return Value(s):On success returns 1. On failure returns 0 and sets @error to 1
    Author(s):         cdkid
#ce

Func _MySQLEnd($oConnectionObj)
    If IsObj($oConnectionObj) Then
        $oConnectionObj.close
        Return 1
    Else
        SetError(1)
        Return 0
    EndIf
EndFunc   ;==>_MySQLEnd

#cs
    Function name: _AddRecord
    Description:     Adds a record to the specified table
    Note(s):           to add to multiple columns use an array with one blank element at the end as the $sColumn, and $value parameter
    Parameter(s):   $oConnectionObj - As returned by _MySQL Connect. $sTable - The table to put the record in
                    $row - The row to put the record in. $value - The value to put into the row
                    $vValue - OPTIONAL default will be default for the column (will not work with array, see notes)
    Requirement(s): Autoit 3 with COM support
    Return value(s): On success returns 1. If the connectionobj is not an object returns 0 and sets @error to 2. If there is any other error returns 0 and sets @error to 1.
    Author(s): cdkid
#ce

Func _AddRecord($oConnectionObj, $sTable, $vRow, $vValue = "")
    If IsObj($oConnectionObj) Then
        $query = "INSERT INTO " & $sTable & " ("

        If IsArray($vRow) Then
            For $i = 0 To UBound($vRow, 1) - 1
                If $i > 0 And $i <> UBound($vRow, 1) - 1 Then
                    $query = $query & "," & $vRow[$i] & ""
                ElseIf $i = UBound($vRow, 1) - 1 And $vRow[$i] <> "" Then
                    $query = $query & "," & $vRow[$i] & ") VALUES("
                ElseIf $i = 0 Then
                    $query = $query & "" & $vRow[$i] & ""
                ElseIf $vRow[$i] = "" Then
                    $query = $query & ") VALUES("
                EndIf
            Next
        EndIf
        If Not IsArray($vRow) And Not IsArray($vValue) And Not IsInt($vValue) Then
            $oConnectionobj.execute ("INSERT INTO " & $sTable & " (" & $vRow & ") VALUES('" & $vValue & "')")
            return 1
        ElseIf IsInt($vValue) And Not IsArray($vRow) And Not IsArray($vValue) Then
            $oconnectionobj.execute ("INSERT INTO " & $sTable & " (" & $vRow & ") VALUES(" & $vValue & ")")
            return 1
        EndIf

        If IsArray($vValue) Then
            For $i = 0 To UBound($vValue, 1) - 1
                If $i > 0 And $i <> UBound($vValue, 1) - 1 And Not IsInt($vValue[$i]) Then
                    $query = $query & ",'" & $vValue[$i] & "'"
                ElseIf $i = UBound($vValue, 1) - 1 And $vValue[$i] <> "" And Not IsInt($vValue[$i]) Then
                    $query = $query & ",'" & $vValue[$i] & "');"
                ElseIf $i = 0 And Not IsInt($vValue[$i]) Then
                    $query = $query & "'" & $vValue[$i] & "'"
                ElseIf $vValue[$i] = "" Then
                    $query = $query & ");"
                ElseIf IsInt($vValue[$i]) And $vValue[$i] <> "" Then
                    $query = $query & "," & $vValue[$i]
                EndIf
            Next
        EndIf
        If StringRight($query, 2) <> ");" Then
            $query = $query & ");"

        EndIf
        $oconnectionobj.execute ($query)
    EndIf
    If Not IsObj($oConnectionObj) Then
        SetError(2)
        Return 0
    EndIf
    If @error And IsObj($oConnectionObj) Then
        Return 0
        SetError(1)
    Else
        Return 1
    EndIf

EndFunc   ;==>_AddRecord


#cs
    Function name: _DeleteRecord
    Description:     Deletes a record from the specified table
    Parameter(s):  $oConnectionObj - As returned by _MySQLConnect. $sTable - The table to delete from.
    $sColumn - The column to check value (see the example in the next post) $vRecordVal -
    The value to check in $sColumn (see example).
    $iLimit (optional) - the max number of record to delete if multiple match the criteria (default 1)
    Return Value(s): On success returns 1. If there $oConnectionObj is not an object returns 0 and sets @error to 1. If there are any other errors returns 0 and sets @error to 2
    Requirement(s): Autoit 3 with COM support
#ce

Func _DeleteRecord ($oConnectionObj, $sTable, $sColumn, $vRecordVal, $iLimit = 1)
    If IsObj($oConnectionObj) And Not IsInt($vRecordVal) Then
        $oconnectionobj.execute ("DELETE FROM " & $sTable & " WHERE " & $sColumn & " = '" & $vRecordVal & "' LIMIT " & $iLimit & ";")
    ElseIf IsInt($vRecordVal) Then
        $oconnectionobj.execute ("DELETE FROM " & $sTable & " WHERE " & $sColumn & " = " & $vRecordVal & " LIMIT " & $iLimit & ";")
        If Not @error Then
            Return 1
        ElseIf Not IsObj($oConnectionObj) Then
            SetError(1)
            Return 0
        ElseIf @error And IsObj($oConnectionObj) Then
            SetError(2)
            Return 0
        EndIf
    EndIf
EndFunc   ;==>_DeleteRecord

#cs
    Function name: _CreateTable()
    Description: Creates a table
    Parameters: $oConnectionObj - as returned by _MySQLConnect, $sTbl - The name of the table to create, $sPrimeKey - The name of the
    primary key column. $keytype - The datatype of the primary key (default is integer), $sNotNull - "yes" = must be filled out whenever
    a record is added "no" does not need to be filled out ("yes" default). $keyautoinc - "yes" = Auto incrememnts "no" = does not.
    $sType - The table type (default is InnoDB)
    Requirements: Autoit V3 with COM support
    Return value(s): on success returns 1 on failure sets @error to 1 and returns 0
    Author: cdkid
#ce

Func _CreateTable($oConnectionObj, $sTbl, $sPrimeKey, $keytype = "INTEGER", $sNotNull = "yes", $keyautoinc = "yes", $sType = "InnoDB")
    If IsObj($oConnectionObj) And Not @error Then
        $str = "CREATE TABLE " & $sTbl & " " & "(" & $sPrimeKey & " " & $keytype & " UNSIGNED"
        If $sNotNull = "yes" Then
            $str = $str & " NOT NULL"
        EndIf

        If $keyautoinc = "yes" Then
            $str = $str & " AUTO_INCREMENT,"
        EndIf

        $str = $str & " PRIMARY KEY (" & $sPrimeKey & " )" & " ) " & "TYPE = " & $sType & ";"
        $oConnectionObj.execute ($str)
        Return 1


    ElseIf @error Then
        Return 0
        SetError(1)
    EndIf

EndFunc   ;==>_CreateTable

#cs
    Function Name: _CreateColumn
    Description: Creates a column in the given table
    Requirements: AutoitV3 with COM support
    Parameters: $oConnectionObj - as returned by _MySQLConnect. $sTable - the name of the table to add the column to.
    $sAllowNull - if 'yes' then does not add 'NOT NULL' to the SQL statement (default 'yes') $sDataType - The data type of the column
    default('VARCHAR(45)').     $sAutoInc - if 'yes' adds 'AUTO_INCREMENT' to the MySQL Statement (for use with Integer types)
    default('no').      $sUnsigned - if 'yes' adds 'UNSIGNED' to the MySQL statement. default('no') $vDefault - the default value of the column
    default('')
    Author: cdkid
#ce

Func _CreateColumn($oConnectionObj, $sTable, $sColumn, $sAllowNull = "no", $sDataType = "VARCHAR(45)", $sAutoInc = "no", $sUnsigned = "no", $vDefault = '')
    If IsObj($oConnectionObj) And Not @error Then
        $str = "ALTER TABLE `" & $sTable & "` ADD COLUMN `" & $sColumn & "` " & $sDataType & " "
        If $sAllowNull = "yes" Then
            $str = $str & "NOT NULL "
        EndIf
        If $sAutoInc = 'yes' Then
            $str = $str & "AUTO_INCREMENT "
        EndIf
        If $sUnsigned = 'yes' Then
            $str = $str & "UNSIGNED "
        EndIf
        $str = $str & "DEFAULT '" & $vDefault & "';"
        $oConnectionObj.execute ($str)
        Return 1
    Else
        SetError(1)
        Return 0
    EndIf

EndFunc   ;==>_CreateColumn

#cs
    Function Name: _DropCol()
    Description: Delete a column from the given table
    Requirements: AutoitV3 with COM support
    Parameters: $oConnectionObj - As returned by _MySQLConnect(). $sTable - The name of the table to delete the column from
    $sColumn - THe name of the column to delete
    Author: cdkid
#ce

Func _DropCol($oConnectionObj, $sTable, $sColumn)
    If IsObj($oConnectionObj) & Not @error Then
        $oConnectionObj.execute ("ALTER TABLE " & $sTable & " DROP COLUMN " & $sColumn & ";")
        Return 1
    ElseIf @error Then
        SetError(1)
        Return 0
    EndIf
EndFunc   ;==>_DropCol

#cs
    Function Name: _DropTbl()
    Description: Deletes a table from the database
    Requirements: AutoitV3 with COM support
    Parameters: $oConnectionObj - As returned by _MySQLConnect. $sTable - The name of the table to delete
    Author: cdkid
#ce

Func _DropTbl($oConnectionObj, $sTable)
    If IsObj($oConnectionObj) And Not @error Then
        $oConnectionObj.execute ("DROP TABLE " & $sTable & ";")
        Return 1
    Else
        SetError(1)
        Return 0
    EndIf
EndFunc   ;==>_DropTbl


#cs
    Function name: _CountRecords()
    Description: Get the number of records in the specified column
    Parameters: $oConnectionObj - As returned by _MySQLConnect. $sTable - The name of the table that the column is in
    $value - If not = "" then it is put in the select statement in the WHERE clause (default "")
    Return value(s): On success returns the number of records. On failure sets @error to 1 and returns 0
    Author: cdkid
#ce
Func _CountRecords($oConnectionObj, $sTable, $sColumn, $vValue = '')
    If IsObj($oConnectionObj) And Not @error Then

        If $sColumn <> "" And $vValue <> "" And Not IsInt($vValue) Then
            $constr = "SELECT " & $sColumn & " FROM " & $sTable & " WHERE " & $sColumn & " = '" & $vValue & "'"
        ElseIf $sColumn <> "" And $vValue = '' And Not IsInt($vValue) Then
            $constr = "SELECT " & $sColumn & " FROM " & $sTable
        ElseIf IsInt($vValue) And $sColumn <> '' And $vValue <> '' Then
            $constr = "SELECT " & $sColumn & " FROM " & $sTable & " WHERE " & $sColumn & " = " & $vValue
        EndIf
        $sql2 = ObjCreate("ADODB.Recordset")
        $sql2.cursorlocation = 3
        $sql2.open ($constr, $oConnectionObj)
        With $sql2
            $ret = .recordcount
        EndWith
        $sql2.close
        Return $ret
    Else
        SetError(1)
        Return 0
    EndIf
EndFunc   ;==>_CountRecords

#cs
    Function name: _CountTables
    Description: Counts the number of tables in the database
    Parameter(s): $oConnectionObj - As returned by _MySQLConnect
    Return value(s): if error - returns 0 and sets @error to 1. on success returns the number of tables in the database
    Author: cdkid
#ce

Func _CountTables($oConnectionObj)
    If IsObj($oConnectionObj) Then
        $quer = $oConnectionObj.execute ("SHOW TABLES;")
        $i = 0
        With $quer
            While Not .EOF
                $i = $i + 1
                .MoveNext
            WEnd
        EndWith
        Return $i
    EndIf
    If @error Then
        SetError(1)
        Return 0
    EndIf

EndFunc   ;==>_CountTables

#cs
    Function name: _GetColNames
    Description: Get's the names of all columns in a specified table
    Parameters: $oConnectionObj - As returned by _MySQLConnect. $sTable - The name of the table to get the column names from
    Return values: On success returns an array where $array[0] is the number of elements in the array and all the rest are column names.
    On failure returns 0 and sets @error to 1
    Author: cdkid
#ce
Func _GetColNames($oConnectionObj, $sTable)
    If IsObj($oConnectionObj) And Not @error Then
        Dim $ret[1], $rs

        $rs = $oConnectionObj.execute ("SHOW COLUMNS FROM " & $sTable & ";")

        With $rs
            While Not .EOF

                ReDim $ret[UBound($ret, 1) + 1]
                $ret[UBound($ret, 1) - 1] = $rs.Fields (0).Value
                .MoveNext
            WEnd
        EndWith
        $ret[0] = UBound($ret, 1) - 1
        Return $ret
    EndIf
    If @error Then
        Return 0
        SetError(1)
    EndIf
EndFunc   ;==>_GetColNames


#cs
    Function name: _GetTblNames
    Description: Gets the names of all tables in the database
    Parameters: $oConnectionObj - As returned by _MySQLConnect
    Return value(s): On success returns an array where $array[0] is the number of tables and $array[n] is the nth table's name
    on failure - returns 0 and sets @error to 1
    Author: cdkid
#ce

Func _GetTblNames($oConnectionObj)
    If IsObj($oConnectionObj) Then
        Dim $ret[1]
        $quer = $oConnectionObj.execute ("SHOW TABLES;")
        With $quer
            While Not .eof
                ReDim $ret[UBound($ret, 1) + 1]
                $ret[UBound($ret, 1) - 1] = .fields (0).value
                .movenext
            WEnd
        EndWith
        $ret[0] = UBound($ret, 1) - 1
        Return $ret
    EndIf
EndFunc   ;==>_GetTblNames

#cs
    Function name: _GetColVals
    Description: Gets all of the values of a specified column in a specified table
    Parameters: $oConnectionObj - As returned by _MySQLConnect(), $sTable - the table that the column is in
    $sColumn - the column to get values from.
    Return value(s): On success returns an array where $array[0] is the number of values and $array[n] is the Nth value
    On failure sets @error to 1 and returns 0
    Author: cdkid
#ce

Func _GetColVals($oConnectionObj, $sTable, $sColumn)
    If IsObj($oConnectionObj) Then
        Dim $ret[1]
        $quer = $oConnectionObj.execute ("SELECT " & $sColumn & " FROM " & $sTable & ";")
        With $quer
            While Not .EOF
                ReDim $ret[UBound($ret, 1) + 1]
                $ret[UBound($ret, 1) - 1] = .Fields (0).value
                .MoveNext
            WEnd
        EndWith
        $ret[0] = UBound($ret, 1) - 1
        Return $ret
    EndIf
EndFunc   ;==>_GetColVals

#cs
    Function name: _GetColCount
    Description: Gets the number of columns in the specified table
    Parameters: $oConnectionObj - As returned by _MySQLConnect(). $sTable - the table to count the columns in
    Return Value(s): On success returns the number of columns in the table. On failure returns -1 and sets @error to 1
    Author: cdkid
#ce
Func _GetColCount($oConnectionObj, $sTable)
    If IsObj($oConnectionObj) Then
        $quer = $oConnectionObj.execute ("SHOW COLUMNS IN " & $sTable)
        With $quer
            $i = 0
            While Not .eof
                $i = $i + 1
                .movenext
            WEnd
        EndWith
        Return $i
    EndIf
    If @error Then
        Return -1
        SetError(1)
    EndIf

EndFunc   ;==>_GetColCount

#cs
    Function name: _GetColType
    Description: Gets the DATA TYPE of the specified column
    Parameters: $oConnectionObj - As returned by _MySQLConnect(). $sTable - the table that the column is in. $sColumn - the column
    to retrieve the data type from.
    Return value(s): On success returns the data type of the column. On failure returns 0 and sets @error to 1
    Author: cdkid
#ce
Func _GetColType($oConnectionObj, $sTable, $sColumn)
    If IsObj($oConnectionObj) Then
        $quer = $oConnectionObj.execute ("SHOW COLUMNS IN " & $sTable)
        With $quer
            $i = 0
            While Not .eof
                If .fields (0).value = $sColumn Then
                    $ret = .fields (1).value
                EndIf
                .MoveNext
            WEnd
        EndWith
        Return $ret
    EndIf
    If @error Then
        Return 0
        SetError(1)
    EndIf
EndFunc   ;==>_GetColType

#cs
    Function: _GetDBNames
    Description: Get a count and list of all databases on current server.
    Parameters: $oConObj - As returned by _MySQLConnect
    Return Value(s): Success - An array where $array[0] is the number of databases and $array[n] is the nth database name.
    Failure - -1 and sets @error to 1
    Author: cdkid
#ce
Func _GetDBNames($conobj)
    If IsObj($conobj) Then
        Local $arr[1], $m
        $m = $conobj.Execute ("SHOW DATABASES;")
        With $m
            While Not .eof
                ReDim $arr[UBound($arr, 1) + 1]
                $arr[UBound($arr, 1) - 1] = .Fields (0).Value
                .MoveNext
            WEnd
        EndWith
        $arr[0] = UBound($arr, 1) - 1
        Return $arr
    Else
        SetError(1)
        Return -1
    EndIf
EndFunc   ;==>_GetDBNames

#cs
    Function: _ChangeCon
    Description: Change your connection string
    Parameters:
    $oConnectionObj
    As returned by _MySQLConnect
    $username
    OPTIONAL: the new username to use
    If omitted, the same username will be used.
    $password
    OPTIONAL: the new password to use
    If omitted, the same password will be used.
    $database
    OPTIONAL: the new database to connect to
    If omitted, the same database will be used.
    $driver
    OPTIONAL: the new driver to use
    If omitted, the MySQL ODBC 3.51 DRIVER will be used.
    $server
    OPTIONAL: the new server to connect to
    If omitted, the same server will be used.
    $iPort
    OPTIONAL: the new port to be used to connect
    if omitted, the default port (3306) will be used
    Return Value:
    On success, a new connection object for use with subsequent functions.
    On failure, -1 and sets @error to 1
    Author: cdkid
#ce

Func _ChangeCon($oConnectionObj, $username = "", $password = "", $database = "", $driver = "", $server = "", $iPort = 0)
    Local $constr, $db, $usn, $pwd, $svr
    If IsObj($oConnectionObj) Then
        $constr = $oConnectionObj.connectionstring
        $constr = StringReplace($constr, 'Provider=MSDASQL.1;Extended Properties="', '')
        $constr = StringSplit($constr, ";")
        For $i = 1 To $constr[0]
            If StringLeft($constr[$i], 3) = "UID" Then
                If $username <> "" Then
                    $usn = $username
                Else
                    $usn = StringMid($constr[$i], 5)
                EndIf
                $usn = StringTrimRight($usn, 1)
            EndIf
            If StringLeft($constr[$i], 3) = "PWD" Then
                If $password <> "" Then
                    $pwd = $password
                Else
                    $pwd = StringMid($constr[$i], 5)
                EndIf
            EndIf
            If StringLeft($constr[$i], 8) = "DATABASE" Then
                If $database <> "" Then
                    $db = $database
                Else
                    $db = StringMid($constr[$i], 10)
                EndIf
            EndIf
            If StringLeft($constr[$i], 6) = "SERVER" Then
                If $server <> "" Then
                    $svr = $server
                Else
                    $svr = StringMid($constr[$i], 8)
                EndIf
            EndIf
            If StringLeft($constr[$i], 6) = "DRIVER" Then
                If $driver <> "" Then
                    $dvr = $driver
                Else
                    $dvr = "{MySQL ODBC 3.51 DRIVER}"
                EndIf
            EndIf
            If StringLeft($constr[$i], 4) = "PORT" Then
                if $iport <> 0 Then
                    $port = $iport
                Else
                    $port = 3306
                EndIf
            EndIf
        Next
        $oConnectionObj.close
        $oConnectionObj.Open ("DATABASE=" & $db & ";DRIVER=" & $dvr & ";UID=" & $usn & ";PWD=" & $pwd & ";SERVER=" & $svr & ";PORT=" & $port & ";")
        Return $oConnectionObj
    Else
        SetError(1)
        Return -1
    EndIf
EndFunc   ;==>_ChangeCon

thx

post-54845-0-08446400-1289592138_thumb.p

Edited by KillaH
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...