[R] Problème avec MySql FetchData

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Ks10
Niveau 6
Niveau 6
Messages : 282
Enregistré le : mer. 25 avr. 2012 20:38
Status : Hors ligne

[R] Problème avec MySql FetchData

#1

Message par Ks10 »

Bonjour tout le monde,

J'ai un problème qui me semble bizarre et je n'arrive pas à trouver la source du soucis.
J'ai pourtant retourner le code dans tous les sens mais je ne comprend pas.

En gros voici la structure de mon programme :

► Afficher le texte
Voici ce que ma fonction _CheckCB() fait :

- Lit l'input
- VÃ[emoji767]rifie qu'il y a bien 13 caractères
- Si c'est le cas alors il va chercher la rÃ[emoji767]fÃ[emoji767]rence dans la table
- Si il la trouve , il rajoute 1 à la quantitÃ[emoji767] de cette rÃ[emoji767]fÃ[emoji767]rence
- Si il ne la trouve pas, il me propose de crÃ[emoji767]e ce produit dans la table.

Le code est fonctionnel si j'entre une rÃ[emoji767]fÃ[emoji767]rence correct dès l'ouverture du programme.
Si je rentre une rÃ[emoji767]fÃ[emoji767]rence incorrect cela m'affiche ce message :
Array variable has incorrect number of subscripts or subscript dimension range exceeded.
Je ne comprend pas ?
Modifié en dernier par Ks10 le ven. 31 oct. 2014 13:49, modifié 2 fois.
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Problème avec MySql FetchData

#2

Message par jbnh »

Quelle array génère l'erreur ?

Egalement je ne comprend pas bien :

Si cette erreur est gérée des le début (que la réference n'existe pas) :

Code : Tout sélectionner

If Not _EzMySql_Query("SELECT * FROM `inventaire`.`" & $vrf_tj & "` WHERE reference = '" & $chkcb & "'") Then
                    MsgBox(64, "Informations", "Impossible de scanné cette référence. Code erreur : " & _EzMySql_ErrMsg())
Comment est-il possible d'arriver dans le deuxième else :

Code : Tout sélectionner

Else
                        $ref_abs = MsgBox($MB_YESNO, "Informations", "La référence " & $chkcb & " n'existe pas." & @CRLF _
 
Ou quelque chose m'échappe ?
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Avatar du membre
Ks10
Niveau 6
Niveau 6
Messages : 282
Enregistré le : mer. 25 avr. 2012 20:38
Status : Hors ligne

Re: [..] Problème avec MySql FetchData

#3

Message par Ks10 »

C'est cette array qui génère l'erreur je pense :

Code : Tout sélectionner

 
                If Not _EzMySql_Query("SELECT * FROM `inventaire`.`" & $vrf_tj & "` WHERE reference = '" & $chkcb & "'") Then
                    MsgBox(64, "Informations", "Impossible de scanné cette référence. Code erreur : " & _EzMySql_ErrMsg())
                Else
                    For $i = 1 To _EzMySql_Rows() Step 1
                        $a1Row = _EzMySql_FetchData()

                    Next
 
Ce code crée un tableau a partir de la requête.
Oui c'est possible car mon programme fonctionne, j'ai juste une erreur si je rentre une mauvaise référence quand je lance le programme.
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Problème avec MySql FetchData

#4

Message par jbnh »

Si tu mentionnes une mauvaise référence tu devrais entrer dans le if et ne pas construire ton tableau, la condition de ton if ne marche pas je suppose...
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Avatar du membre
Ks10
Niveau 6
Niveau 6
Messages : 282
Enregistré le : mer. 25 avr. 2012 20:38
Status : Hors ligne

Re: [..] Problème avec MySql FetchData

#5

Message par Ks10 »

Et donc comment pallier ce problème ?
En sachant que dans cette situation :
- J'ouvre le programme
- Je rentre une bonne ref cela fonctionne
- Ensuite je peut rentrer une mauvaise référence a ma condition fonctionne parfaitement.
Avatar du membre
Ks10
Niveau 6
Niveau 6
Messages : 282
Enregistré le : mer. 25 avr. 2012 20:38
Status : Hors ligne

Re: [..] Problème avec MySql FetchData

#6

Message par Ks10 »

Hello,

Alors j'ai continuer à travailler sur le problème et je l'est presque résolu.
Tout d'abord je vous explique ma méthode :

Dans l'ancien code je passé par une requête "SELECT" et je tenté de récupérer une erreur cependant dans le sens où ma requête est formulé même si je rentre une fausse référence celle-ci n'est pas considéré comme une erreur car dans phpmyadmin la requête renvoie un résultat dans les cases du type NULL. Donc le "If not _EzMySql_Query("SELECT ...") etc... " ne génère pas d'erreur car la commande est exécuté. Et dans la suite de la condition il n'est pas possible de gêrer la fausse référence.

Alors je me suis tourné vers une autre solution ! Celle ci :

Code : Tout sélectionner

"SELECT COUNT(*) FROM `inventaire`.`" & $vrf_tj & "` WHERE reference = '" & $chkcb & "'"
En gros on va rechercher une ligne qui correspond à cette référence si ce n'est pas le cas, la requête retournera 0 et sinon il retourne 1.
Alors voici le nouveau code concernant ma fonction _chkcb()
► Afficher le texte

Alors avec ce code cela fonctionne mais à moitier ...
Je m'explique :

- Si je rentre une bonne référence avec un copié collé, pas de soucis le code est pris en compte.
- Si je rentre une mauvaise référence, pas de soucis le code est pris en compte.

- Si je rentre une bonne référence avec mon lecteur code barre, même si la référence est bonne il m'indique que celle-ci n'existe pas. WTF ?

Quelqu'un pourrait m'expliquer pourquoi ?

Merci d'avance
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Problème avec MySql FetchData

#7

Message par Hugues »

Salut,

Je suppose que tu as du le vérifier, mais regarde que lorsque tu scannes un espace n'est pas rajouté à la fin de ta chaîne de caractère.

J'ai eu le soucis une fois, je scannais avec un lecteur DataMatrix, il me mettais bien la valeur dans mon InputBox, mais rajoutais un espace à la fin...
Avatar du membre
Ks10
Niveau 6
Niveau 6
Messages : 282
Enregistré le : mer. 25 avr. 2012 20:38
Status : Hors ligne

Re: [..] Problème avec MySql FetchData

#8

Message par Ks10 »

Merci Hugues pour ta réponse mais ce n'est pas ça :)

J'ai trouver mon problème xD
En faite en tout début j'avait mis une condition un peu contradictoire "If Not $chkcb = "" Then " du coup le programme traduisé "Si l'input n'est pas vide " alors "la référence n'existe pas".

J'ai donc remplacé par :

Code : Tout sélectionner

If $chkcb = "" Then

Else

; ICI MON CODE POUR UNE REFERENCE ABSENTE

Endif
 
Bref j'ai fait mes tests et sa passe crème :)
Merci quand même
Répondre