IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

[VB6/MySQL] Problème de traitement des champs Tinyint(1)


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 8
    Par défaut [VB6/MySQL] Problème de traitement des champs Tinyint(1)
    Bonjour à tous.

    Je suis actuellement un train de développer une sorte de "PHPMyAdmin" pour mon entreprise.

    Le but de ce programme est de récupérer la liste des tables (ça, aucun problème) et quand on sélectionne une table, afficher la liste des champs et un certain nombre d'informations :
    -Nom du champ
    -Type et taille du champ
    -Clé primaire ?
    -Valeur par défaut
    -Null autorisé ?

    Je récupère la liste des champs grace à "DESCRIBE" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Set RsStr = New ADODB.Recordset
    Cd_SQL = "DESCRIBE " & MSFlexGrid2.TextArray(Fgi_tables(Index_tables, 1)) & ";"
    RsStr.Open Cd_SQL, ConnexionServ
    Je parcours ensuite mon RecordSet et affiche les informations dans un MSFlexGrid
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    If Not RsStr.EOF Then
        RsStr.MoveFirst
        Compteur = 1
        Do While Not RsStr.EOF
            If Compteur + 1 >= MSFlexGrid3.Rows Then MSFlexGrid3.AddItem ""
            MSFlexGrid3.TextArray(Fgi_champs(Compteur, 1)) = Majuscule(RsStr(0)) 'Nom du champ
            MSFlexGrid3.TextArray(Fgi_champs(Compteur, 2)) = Majuscule(RsStr(1)) 'Type/Taille du champ
            MSFlexGrid3.TextArray(Fgi_champs(Compteur, 3)) = Majuscule(RsStr(3)) 'Primary Key
            If IsNull(RsStr(4)) = False Then 'Valeur par défaut
                    MSFlexGrid3.TextArray(Fgi_champs(Compteur, 4)) = RsStr(4)
            End If
    Seulement voilà, quand le champ est un TinyInt(1) et que RsStr(4) vaut Null, la fonction IsNull(RsStr(4)) renvoie "True" quand même... et je ne sais pas comment contourner le problème (à part sauter cette partie quand le champ est un Tinyint(1) mais c'est pas très propre quand même..)

    En vous remerciant par avance pour vos réponses ^^

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Salut

    IsNull(RsStr.Fields(4).Value) produit il le même problème ?
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 8
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    Salut

    IsNull(RsStr.Fields(4).Value) produit il le même problème ?
    Oui, j'ai toujours la même erreur à la ligne :
    MSFlexGrid3.TextArray(Fgi_champs(Compteur, 4)) = RsStr(4)

    Erreur d'execution 94
    Utilisation non autorisé de "Null"

  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Ok
    la condition If Not IsNull(RsStr.Fields(4).Value) Then ne fonctionne pas ? et donc la ligneMSFlexGrid3.TextArray(Fgi_champs(Compteur, 4)) = RsStr(4) est jouée ?

    A essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If VarType(MeVar) = vbNull Then
        MsgBox "ma variable = null"
        Else
        MsgBox "ma variable n'est pas null"
    End If
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre du Club
    Inscrit en
    Février 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 8
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    Ok
    la condition If Not IsNull(RsStr.Fields(4).Value) Then ne fonctionne pas ? et donc la ligneMSFlexGrid3.TextArray(Fgi_champs(Compteur, 4)) = RsStr(4) est jouée ?
    En effet, il passe dans la boucle If quand même et lance la ligne MSFlexGrid3.TextArray(Fgi_champs(Compteur, 4)) = RsStr(4)
    Citation Envoyé par ProgElecT Voir le message
    Ok
    A essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If VarType(MeVar) = vbNull Then
        MsgBox "ma variable = null"
        Else
        MsgBox "ma variable n'est pas null"
    End If
    J'ai essayé de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If VarType(RsStr(4)) = vbNull Then
         MSFlexGrid3.TextArray(Fgi_champs(Compteur, 4)) = "<Aucune>"
    Else
         MsgBox (VarType(RsStr(4)))
    End If
    Je n'ai plus de problème avec les Tinyint(1) mais maintenant, j'ai un problème avec les champs qui ont des valeurs par défaut.. il me bloque sur toutes !
    Quand un champ à une valeur par défaut, il me lance bien la ligne MsgBox (VarType(RsStr(4))) mais dans cette ligne VarType(RsStr(4)) renvoit 1, alors qu'il ne devrait pas puisque dans le If, VarType(RsStr(4)) est different de vbNull, et donc de 1..

    C'est à n'y rien comprendre, comme si RsStr(4) était remis à Null après utilisation >_<

    Merci quand même pour la début d'aide qui m'a enlevé une épine du pied !

Discussions similaires

  1. [VB6/mysql]:Problème d'insertion dans une bdd
    Par gaetan.tranvouez dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 14/06/2006, 10h15
  2. [SPRING][HIBERNATE][MYSQL] insert et valeur des champs.
    Par nikalkal dans le forum Hibernate
    Réponses: 9
    Dernier message: 27/04/2006, 14h07
  3. Problème de parcours des champs dans l'ordre.
    Par jyms2006 dans le forum Access
    Réponses: 1
    Dernier message: 19/04/2006, 11h08
  4. Traitement des champs memo par DBGrid
    Par Sydaze dans le forum Bases de données
    Réponses: 4
    Dernier message: 18/04/2005, 09h24
  5. Delphi - Base donnée Paradox, problème de nom des champs
    Par mjp dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/01/2005, 21h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo