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

avec Java Discussion :

Erreur du type NullPointerException


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Administrateur réseau
    Inscrit en
    Mai 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur réseau

    Informations forums :
    Inscription : Mai 2009
    Messages : 58
    Par défaut Erreur du type NullPointerException
    Bonjour,

    Je cherche en vain depuis plusieurs jours pourquoi un NullPointerException est signalé lors de la création d'un fichier .dat par mon application.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
            at comptesbancaires.Lect_Sauv_comptebancaires.ecrireFichier(Lect_Sauv_comptebancaires.java:91)
            at IHM.Manipcompte.actionPerformed(Manipcompte.java:213)
    La première classe constitue l'interface de création d'un compte (constitué par un fichier .dat), et la deuxième à pour rôle d'écrire dans celui-ci.

    Merci d'avance

    Classe Manipcompte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
     
     
    public class Manipcompte extends JFrame implements ActionListener {
     
        /* initialisation des propriétés du compte */
        String Type_cpt = "Courant";
        String Num_cpt = "";
     
        private JLabel imgFond;
        private JLabel label_Euros;
        private JLabel label_Solde;
     
        private ImageIcon img_IHMFond;
     
        private JPanel saisie_Lignes;
     
        private ButtonGroup boutonsGrp;
     
        private JCheckBox courant;
        private JCheckBox entreprise;
     
        private JTextField val_Saisie;
     
        private JButton btn_OK;
     
     
     
        public Manipcompte (String cpt) {
     
            initComposants();
     
            /* affichage dans le cadre de l'interface le type, le numéro et le solde du compte en question */
            Border cadre = BorderFactory.createTitledBorder("Compte n ° : " + cpt + " ");
            saisie_Lignes.setBorder(cadre);
            this.setBounds(500, 130, 470, 390);
            this.setVisible(true);
     
            /* chargement et placement de l'image de fond de l'interface */
            img_IHMFond = new ImageIcon("Images/FondCompte.png");
            imgFond.setIcon(img_IHMFond);
            boutonsBox();
            Num_cpt = cpt;
        }
     
     
        /*
         * méthode pour créer les boutons de selection pour le type de compte
         */
        private void boutonsBox() {
     
            boutonsGrp.add(courant);
            boutonsGrp.add(entreprise);
     
            /* sélection du type courant par defaut */
            courant.setSelected(true);
        }
     
     
     
        /**
         * méthode pour initialiser tous les composants graphisue de l'interface
         */
        private void initComposants() {
     
            boutonsGrp = new ButtonGroup();
            courant = new JCheckBox();
            entreprise = new JCheckBox();
            saisie_Lignes = new JPanel();
            val_Saisie = new JTextField();
            btn_OK = new JButton();
            label_Euros = new JLabel();
            label_Solde = new JLabel();
            imgFond = new JLabel();
     
            /* rendre possible la fermeture de l'interface par la croix en haut a droite */
            this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
            this.setTitle("Créer un compte");
     
            /* définition de la couleur de fond */
            this.setBackground(new Color(190, 190, 190));
     
            /* rendre le fenêtre non redimensionnable */
            this.setResizable(false);
     
            saisie_Lignes.setBorder(BorderFactory.createTitledBorder("   Comptes   "));
     
            courant.setText("Compte Courant");
            courant.addActionListener(this);
     
            entreprise.setText("Compte Entreprise");
            entreprise.addActionListener(this);
     
            val_Saisie.setHorizontalAlignment(JTextField.RIGHT);
            val_Saisie.setText("0");
     
            btn_OK.setText("OK");
            btn_OK.addActionListener(this);
     
            label_Euros.setText("Euros");
     
            label_Solde.setText("Solde :");
     
     
            GroupLayout gl = new GroupLayout(saisie_Lignes);
            saisie_Lignes.setLayout(gl);
                    gl.setHorizontalGroup(
                            gl.createParallelGroup(GroupLayout.Alignment.LEADING)
                            .addGroup(gl.createSequentialGroup().addContainerGap()
                            .addGroup(gl.createParallelGroup(GroupLayout.Alignment.TRAILING, false)
                            .addGroup(gl.createSequentialGroup()
                                .addComponent(label_Solde)
                                .addPreferredGap(ComponentPlacement.RELATED)
                                .addComponent(val_Saisie, GroupLayout.PREFERRED_SIZE, 77, GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(ComponentPlacement.RELATED)
                                .addComponent(label_Euros)
                                .addPreferredGap(ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(btn_OK))
                             .addGroup(gl.createSequentialGroup()
                                .addComponent(courant)
                                .addGap(40, 40, 40)
                                .addComponent(entreprise)))
                                .addContainerGap(36, Short.MAX_VALUE))
            );
     
            gl.setVerticalGroup(
                    gl.createParallelGroup(GroupLayout.Alignment.LEADING)
                    .addGroup(gl.createSequentialGroup().addContainerGap()
                    .addGroup(gl.createParallelGroup(GroupLayout.Alignment.BASELINE)
                        .addComponent(courant)
                        .addComponent(entreprise))
                     .addGap(37, 37, 37)
                     .addGroup(gl.createParallelGroup(GroupLayout.Alignment.CENTER)
                        .addComponent(label_Solde)
                        .addComponent(label_Euros)
                        .addComponent(val_Saisie, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                        .addComponent(btn_OK))
                     .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
            );
     
            imgFond.setText("JLabel1");
     
            GroupLayout gl2 = new GroupLayout(this.getContentPane());
            this.getContentPane().setLayout(gl2);
            gl2.setHorizontalGroup(gl2.createParallelGroup(GroupLayout.Alignment.LEADING)
                    .addGroup(gl2.createSequentialGroup()
                        .addGroup(gl2.createParallelGroup(GroupLayout.Alignment.LEADING)
                            .addGroup(gl2.createSequentialGroup().addGap(145, 145, 145)
                            .addComponent(imgFond))
                        .addGroup(gl2.createSequentialGroup().addContainerGap()
                        .addComponent(saisie_Lignes, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)))
                        .addContainerGap(914, Short.MAX_VALUE))
     
            );
     
            gl2.setVerticalGroup(gl2.createParallelGroup(GroupLayout.Alignment.LEADING)
                    .addGroup(gl2.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(saisie_Lignes, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(ComponentPlacement.RELATED)
                        .addComponent(imgFond)
                        .addContainerGap(914, Short.MAX_VALUE))
            );
     
            this.pack();
     
        }
     
     
        /**
         * méthode gérant les évènements sur les éléments graphiques
         * @param btn l'élément en question
         */
        public void actionPerformed(ActionEvent e) {
     
     
            if (e.getSource() == btn_OK) {
     
                /* récupération de la valeur de départ du montant à l'ouverture du compte */
                double val_Init = Double.parseDouble(val_Saisie.getText());
     
                /* création d'un compte */
                CompteBancaires cb = new CompteBancaires(Num_cpt, Type_cpt, val_Init);
     
                /* enregistrement du compte dans un fichier objet (.dat) */
                cb.affichage();
     
                /* création du fichier */
                Lect_Sauv_comptebancaires fichier = new Lect_Sauv_comptebancaires();
     
                /* ouverture du fichier en mode ecriture */
                fichier.ouvrirFichier("Comptes/"+Num_cpt+".dat", "W");
     
                /* enregistrement du compte dans le fichier */
                fichier.ecrireFichier(cb);
     
                /* fermeture du fichier */
                fichier.fermerFichier();
     
                /* pour fermer la fenêtre sans quitter l'application */
                this.dispose();
            }
     
            if (e.getSource() == entreprise) {
     
                /* type de compte "Entreprise" */
                Type_cpt = "Entreprise";
            }
     
            if (e.getSource() == courant) {
     
                /* type de compte "Entreprise" */
                Type_cpt = "Courant";
            }
     
     
        }
     
    }
    Classe : Lect_Sauv_comptebancaires

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
     
    package comptesbancaires;
     
    import java.io.*;
    import javax.swing.JOptionPane;
     
     
    public class Lect_Sauv_comptebancaires {
     
        private String nomFichier = "Compte.dat";
     
        private ObjectOutputStream fluxSauv;  // flux pour sauvegarder dans un fichier
        private ObjectInputStream fluxLect;   // flux pour lire un fichier
     
        private char modeFlux;                // pour définir l'etat du flux (lect ou sauv)
     
     
     
     
        /**
         * méthode qui détermine le mode d'ouverture du fichier (lecture/ecriture)
         * @param nomFic le fichier
         * @param modeFichier mode lecture ou ecriture du fichier
         * @return boolean True : ouverture ok False : problème rencontré
         */
        public boolean ouvrirFichier (String nomFic, String modeFichier) {
     
            try {
     
                modeFlux = (modeFichier.toUpperCase()).charAt(0);
                nomFichier = nomFic;
     
                if (modeFlux == 'R' || modeFlux == 'L') {
     
                    /* creation du flux pour lire le fichier */
                    fluxLect = new ObjectInputStream(new FileInputStream(nomFichier));
                }
                else if (modeFlux == 'W' || modeFlux == 'E') {
     
                    /* creation du flux pour ecrire dans le fichier */
                    fluxSauv = new ObjectOutputStream(new FileOutputStream(nomFichier));
     
     
                }
                return true;
            }
            catch (IOException e) {
     
                return false;
            }
        }
     
     
        /**
         * méthode permettant la fermeture des flux de lecture/ecriture du fichier
         */
        public void fermerFichier () {
     
            try {
     
                if (modeFlux == 'R' || modeFlux == 'L') {
     
                    /* fermeture du flux pour lire le fichier */
                    fluxLect.close();
                }
                else if (modeFlux == 'W' || modeFlux == 'E') {
     
                    /* fermeture du flux pour ecrire dans le fichier */
                    fluxSauv.close();
                }
     
            }
            catch (IOException e) {
     
                JOptionPane.showMessageDialog(null, "Erreur lors de la fermeture du fichier","Erreur", JOptionPane.ERROR_MESSAGE);
            }
        }
     
     
        /**
         * méthode effectuant l'enregistrement d'un compte dans un fichier
         * @param cb compte bancaire qui va etre enregistré dans le fichier
         */
        public void ecrireFichier (CompteBancaires cb) {
     
            try {
     
                /* si le compte existe bien */
                if (cb != null) {
     
                    /* enregistrement de celui-ci dans un fichier */
                    fluxSauv.writeObject(cb);
                }
            }
            catch (IOException e) {
     
                JOptionPane.showMessageDialog(null, nomFichier+" : Erreur lors de l'enregistrement du fichier","Erreur", JOptionPane.ERROR_MESSAGE);
            }
        }
     
     
     
        /**
         * méthode permettant de lire le contenu d'un fichier
         * @return les données bancaires contenues dans le fichier
         */
        public CompteBancaires lireFichier() {
     
            try {
     
                CompteBancaires cb = (CompteBancaires) fluxLect.readObject();
                return cb;
            }
            catch (IOException e) {
     
                JOptionPane.showMessageDialog(null, nomFichier+" : Erreur lors de la lecture du fichier","Erreur", JOptionPane.ERROR_MESSAGE);
            }
            catch (ClassNotFoundException e) {
     
                JOptionPane.showMessageDialog(null, nomFichier+" : Erreur Mauvais format de fichier","Erreur", JOptionPane.ERROR_MESSAGE);
            }
     
            return null;
        }
     
    }

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    a quoi correspond Lect_Sauv_comptebancaires.java:91 ?

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Pourtant avec le code que tu donnes, Lect_Sauv_comptebancaires.ecrireFichier() ne peut faire un NullPointerException que pour une seule raison : fluxSauv est null.

    Ce qui peut s'expliquer facilement par le fait que fluxSauv est initialisé par un appel préalable de Lect_Sauv_comptebancaires.ouvrirFichier(), et que cet appel peut échouer, par exemple avec une IOException.
    Notons que l'IOException en question est catchée, et que dans ce cas-là la méthode renvoie false. Mais personne ne s'intéresse à ce qu'elle renvoie, donc si quelque chose se passe mal tout le monde s'en cogne, et fluxSauv sera null quand même.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre confirmé
    Profil pro
    Administrateur réseau
    Inscrit en
    Mai 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur réseau

    Informations forums :
    Inscription : Mai 2009
    Messages : 58
    Par défaut
    Lect_Sauv_comptebancaires.java:91 correspond à l'enregistrement du compte dans le fichier .dat (fluxSauv.writeObject(cb)

    Dans mon code, fluxSauv n'est pas à null je le teste avant donc son initialisation c'est bien passé (fonction ouvrirFichier()), j'ai pensé que cela venait de l'objet compteBancaires mais il est bien instancier dans la Classe Manipcompte. Plus précisément lorsque le bouton OK est sollicité. Je ne vois pas d'où cela peut venir.

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par kmtaz Voir le message
    Lect_Sauv_comptebancaires.java:91 correspond à l'enregistrement du compte dans le fichier .dat (fluxSauv.writeObject(cb)

    Dans mon code, fluxSauv n'est pas à null je le teste avant donc son initialisation c'est bien passé (fonction ouvrirFichier()),

    la seul chose qui peut etre null et déclencher une exception NullPointerException à cette ligne est bien fluxSauv. Donc fluxSauv est null. D'ailleur tu ne le teste pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
        public void ecrireFichier (CompteBancaires cb) {
     
            try {
     
                /* si le compte existe bien */
                if (cb != null) {
     
                    /* enregistrement de celui-ci dans un fichier */
                    fluxSauv.writeObject(cb);
                }
            }
            catch (IOException e) {
     
                JOptionPane.showMessageDialog(null, nomFichier+" : Erreur lors de l'enregistrement du fichier","Erreur", JOptionPane.ERROR_MESSAGE);
            }
        }
    c'est uniquement cb que tu teste dans cette méthode!

  6. #6
    Membre confirmé
    Profil pro
    Administrateur réseau
    Inscrit en
    Mai 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur réseau

    Informations forums :
    Inscription : Mai 2009
    Messages : 58
    Par défaut
    Lorsque la méthode ecrireFichier est appelée, fluxSauv est bien a null, je l'ai tester. Le problème réside donc dans la méthode ouvrirFichier.

    J'ai essayé de transformer la variable modeFlux de la méthode ouvrirFichier en string et de faire les tests avec Equals (modeFlux.equals("W") par exemple), cela me retourne toujours la même erreur, le flux n'est pas initialisé.

    J'ai même supprimer le ou (||) dans le test d'ecriture pour voir si il reconnaissait le "W" passé en paramètre de la fonction en question dans la classe Manipompte mais rien n'y fait.

  7. #7
    Membre confirmé
    Profil pro
    Administrateur réseau
    Inscrit en
    Mai 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur réseau

    Informations forums :
    Inscription : Mai 2009
    Messages : 58
    Par défaut
    Je crois avoir cerner le problème. En effet avec seulement la création des flux de lecture et d'écriture, il retourne toujours un NullpointerException.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    public boolean ouvrirFichier (String nomFic, String modeFichier) {
     
           try {
                    nomFichier = nomFic;
     
                    /* creation du flux pour lire le fichier */
                    fluxLect = new ObjectInputStream(new FileInputStream(nomFichier));
     
     
                    /* creation du flux pour ecrire dans le fichier */
                    fluxSauv = new ObjectOutputStream(new FileOutputStream(nomFichier));
     
     
     
     
                return true;
            }
            catch (IOException e) {
                System.out.println("FLUX VIDE");
                return false;
            }
        }

    Je pense que l'erreur vient de "nomFichier", la récupération est incorrecte.

  8. #8
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            catch (IOException e) {
     
                return false;
            }
    affichez cette exception au lieu de la cacher et vous saurez tout de suite quel est le problème!

  9. #9
    Membre confirmé
    Profil pro
    Administrateur réseau
    Inscrit en
    Mai 2009
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Administrateur réseau

    Informations forums :
    Inscription : Mai 2009
    Messages : 58
    Par défaut
    Mais bien sur je ne sais pas pourquoi j'y est pas pensé plus tôt. En voyant le message d'erreur qu'il produisait :

    java.io.FileNotFoundException: Comptes\230.dat (Le chemin d'accès spécifié est introuvable)
    j'ai tout de suite compris (j'étais pas loin du problème d'ailleurs ). En modifiant l'appel de la fonction sa fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    /* ouverture du fichier en mode ecriture */
        fichier.ouvrirFichier("Comptes"+cb.getNumCpt()+".dat","W");
    Merci à tous pour m'avoir aider et excusez moi de ne pas avoir vu plus tôt l'évidence de l'erreur.

  10. #10
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Je suis sûr que tout le monde te pardonne, mais ce qui est important c'est de retenir la leçon :

    On n'efface pas une exception, jamais, pour aucune raison que ce soit.


    (Du moins pas avant d'avoir un niveau suffisant pour te rendre compte pourquoi avant tu ne pouvais pas te permettre de les effacer et pourquoi maintenant tu arrives à construire des cas où ça peut se faire.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreurs de type java.lang.NullPointerException
    Par laposte dans le forum Servlets/JSP
    Réponses: 17
    Dernier message: 06/04/2009, 19h45
  2. Réponses: 1
    Dernier message: 12/12/2005, 03h39
  3. [LG] Erreur de type incompatible dans assignment
    Par Tuxico dans le forum Langage
    Réponses: 4
    Dernier message: 03/12/2005, 21h06
  4. erreur Data type mismatch in criteria expression
    Par bachilbouzouk dans le forum ASP
    Réponses: 3
    Dernier message: 20/04/2005, 11h48
  5. [Agents services] Erreur de types imcompatibles
    Par ApollloCrid dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 14/04/2005, 19h47

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