[..] Erreur ligne 48 Mysql.au3

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
fclm
Niveau 1
Niveau 1
Messages : 9
Enregistré le : dim. 20 juin 2010 16:22
Status : Hors ligne

[..] Erreur ligne 48 Mysql.au3

#1

Message par fclm »

Bonjour,
Lors de l'execution de mon script, a la fin de ce dernier, le message d'erreur suivant se produit
mysql.au3 (48) : ==> The requested action with this object has failed.:
Return $oConnectionObj.execute($sQuery)
Return $oConnectionObj.execute($sQuery)^ ERROR
Le script :

Code : Tout sélectionner


#include "MySQL.au3"

#cs
    Messages d'infos à l'attention de l'utilisateur
#ce

MsgBox(4096, "Metabay Algo", "N'oubliez pas d'allumer vos enceintes et votre micro")
MsgBox(4096, "Metabay Algo", "Toutes les fenêtres du navigateur chrome vont se fermer")
MsgBox(4096, "Metabay Algo", "Lancement ...")

While 1

    #cs
        Connexion à la base de donnée
    #ce

    $Namelist = ""
    $UserName = "root"
    $Password = ""
    $Database = "algoMetabay"
    $MySQLServerName = "localhost"
    $SQLInstance = _MySQLConnect($UserName, $Password, $Database, $MySQLServerName)


    #cs
        Requete Sql
    #ce

    $SQLCode = "SELECT * FROM mp3parsedecode WHERE linkAssoc = '' LIMIT 0, 1"
    $TableContents = _Query($SQLInstance, $SQLCode)


    With $TableContents
        While Not .EOF
            #cs
                $NameList &= .Fields ("linkDownload").value & " " & .Fields ("linkArtist").value & @CRLF
            #ce

            $Namelist &= .Fields("linkDownload" ).value
            .MoveNext
        WEnd
    EndWith
    MsgBox(64, "Result", $Namelist, 1)


    $url = 'http://localhost/algoMetabay/startPlayerTodecode.php?link=' & $Namelist

    ProcessClose("chrome.exe")
    ShellExecute($url);
    Sleep(1000)

    $sUrl = "http://www.midomi.com/";
    $oIE = ShellExecute($sUrl);
    Sleep(11000)
    MouseClick("left", 600, 300, 1)
    Sleep(15000)
    AutoItSetOption("WinTitleMatchMode", 2)
    $handle = WinGetHandle("")
    $urlView = ControlGetText($handle, "", "Chrome_AutocompleteEditView1")

    If $urlView == 'http://www.midomi.com/' Then
        Sleep(8000)
    EndIf;

    ; alert the present url
    MsgBox(4096, "", ControlGetText($handle, "", "Chrome_AutocompleteEditView1"), 1)
    $yop = ControlGetText($handle, "", "Chrome_AutocompleteEditView1")



    $requet = "UPDATE mp3parsedecode SET linkAssoc = '" & $yop & "' WHERE linkDownload = '" & $Namelist & "'";
    _Query($SQLInstance, $requet)

WEnd

 
le problème doit se situer vers $requet, mais ce qui est bizarre c'est que toutes les données sont bien rentrées dans la Base de donnée ...

Merci d'avance,
fclm
Avatar du membre
SrBelial
Niveau 7
Niveau 7
Messages : 335
Enregistré le : jeu. 22 juil. 2010 11:29
Localisation : 81 et 31
Status : Hors ligne

Re:[..] Erreur ligne 48 Mysql.au3

#2

Message par SrBelial »

sur un code long comme celui ci pense à ajouter des balises [spoiler ][ /spoiler] ... ça aidera à la lisibilité

si je comprends bien ça plante dans l'udf MySQL.au3 il est fait par toi ou par quelqu'un d'autre ?
de ce que je comprends du message d'erreur :
* soit l'objet $oConnectionObj a été supprimé ou détruit avant l'appel à execute($sQuery)
* soit il n'est pas du bon type
* soit la requête $sQuery n'est pas correctement construite et le traitement de cette erreur dans la fonction execute n'est pas correctement implémenté.

à toi de vérifier ce qu'il en est de tout ça ... si tu as le code de mysql.au3 sous la main, essaie de nous filer le code de la fonction qui contient la ligne posant problème.
.-SrB-. The One
  • NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
  • OUI ! AutoIt est un langage à part entière !
  • Dans SciTE sélectionnez 1 mot puis F1
  • Don't want english doc ?? go to documentation française !! >>ICI<<
[/size]
fclm
Niveau 1
Niveau 1
Messages : 9
Enregistré le : dim. 20 juin 2010 16:22
Status : Hors ligne

Re: [..] Erreur ligne 48 Mysql.au3

#3

Message par fclm »

L'udf a été fait par quelqu'un d'autre. Ce que je ne comprends pas c'est que le code que j'ai copié/collé utilisé mysql.au3 et ça a marché sans problème depuis deux semaines, depuis ces deux semaines rien n'a été modifié dans l'udf ainsi que le script ...

mysql.au3
► Afficher le texte
Avatar du membre
SrBelial
Niveau 7
Niveau 7
Messages : 335
Enregistré le : jeu. 22 juil. 2010 11:29
Localisation : 81 et 31
Status : Hors ligne

Re: [..] Erreur ligne 48 Mysql.au3

#4

Message par SrBelial »

dans ce cas cherche ce qui a pu changer ...
les données de ta base de données par exemple ...
si ça marchait avant et que ça ne marche plus, il y a forcément eu des changements quelque part, et si c'est pas dans le script, c'est dans les données que tu lui donne à manger
.-SrB-. The One
  • NON ! AutoIt n'est PAS un langage réservé à la réalisation de bots !
  • OUI ! AutoIt est un langage à part entière !
  • Dans SciTE sélectionnez 1 mot puis F1
  • Don't want english doc ?? go to documentation française !! >>ICI<<
[/size]
fclm
Niveau 1
Niveau 1
Messages : 9
Enregistré le : dim. 20 juin 2010 16:22
Status : Hors ligne

Re: [..] Erreur ligne 48 Mysql.au3

#5

Message par fclm »

J'ai toujours la même erreur ... je lui ai donné a manger les mêmes données qu'a l'époque .. et ça marche plus ..
Je sais vraiment pas quoi faire -_-'
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Erreur ligne 48 Mysql.au3

#6

Message par jchd »

Il faut déjà déclarer un gestionnaire d'erreur COM, seul moyen d'obtenir des informations sur une erreur COM !

Il serait peut-être judicieux d'introduire aussi un traitement des erreurs (au niveau AutoIt cette fois), car je n'en vois pas trace.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
fclm
Niveau 1
Niveau 1
Messages : 9
Enregistré le : dim. 20 juin 2010 16:22
Status : Hors ligne

Re: [..] Erreur ligne 48 Mysql.au3

#7

Message par fclm »

Comment tu fais ça ?
Je suis tout nouveau dans le monde d'autoit ..
fclm
Niveau 1
Niveau 1
Messages : 9
Enregistré le : dim. 20 juin 2010 16:22
Status : Hors ligne

Re: [..] Erreur ligne 48 Mysql.au3

#8

Message par fclm »

Code : Tout sélectionner

$requet = "UPDATE mp3parsedecode SET linkAssoc = '" & $yop & "' WHERE linkDownload = '" & $Namelist & "'";
Est ce que cette requête tout simplement est bien "construite" ?
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Erreur ligne 48 Mysql.au3

#9

Message par jchd »

Stricto sensu, NON.
Il n'y a pas de problème de syntaxe, mais si l'une des variables contient une simple quote (apostrophe) sans qu'elle soit doublée, alors la requête deviendra mal contruite.

Il faut impérativement doubler d'éventuelles apostrophes pour chaque variable texte. Il suffit d'utiliser une fonction comme celle-ci (le nom choisi est pure flemme personnelle) :

Code : Tout sélectionner

Func X($s)
    Return ("'" & StringReplace($s, "'", "''", 0, 1) & "'")
EndFunc   ;==>X
 
et passer :

Code : Tout sélectionner

$requet = "UPDATE mp3parsedecode SET linkAssoc = '" & X($yop) & "' WHERE linkDownload = '" & X($Namelist) & "'";
 
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
fclm
Niveau 1
Niveau 1
Messages : 9
Enregistré le : dim. 20 juin 2010 16:22
Status : Hors ligne

Re: [..] Erreur ligne 48 Mysql.au3

#10

Message par fclm »

Non ca ne marche pas, je tiens a rappeler que les infos sont bien rentrées dans la base de donnée, mais que j'ai un message d'erreur qui s'affiche, ce que je trouve illogique ...
Répondre