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

JDBC Java Discussion :

Java et HyperFile


Sujet :

JDBC Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Février 2006
    Messages : 49
    Points : 33
    Points
    33
    Par défaut Java et HyperFile
    Bonjour et merci d'avance pour votre aide.

    Je suis entrain de créer un ETL (Extract Transform and Load) qui récupère des données de deux applications différentes, l'une utilise une base Sybase, et l'autre de L'HyperFile. Je récupère des infos des deux bases et les insert dans une base MySQL.

    Je me connecte à l'une des bases, je l'interroge, je récupère les infos (nom,prénom,...) et créer un objet (client,...) avec ces dernières. Je place tous mes objets dans un vector. J'envoi se vector en paramêtre à une méthode qui me les inserts dans MySQL. Voilà en gros le fonctionnement.

    Avec SyBase sa marche bien, mais avec HyperFile j'ai un problème. J'utilise un driver ODBC avec le bridge ODBC-JDBC pour me connecter à Sybase et HyperFile.

    Le problème est le suivant, quand je récupère les infos de HyperFile, j'arrive à les afficher mais pas à créer mon objet client pourtant c'est le même que celui utilisé avec Sybase...

    J'ai également remarqué que si je fais afficher deux fois les infos il bloc et n'affiche qu'une fois les infos. Et si je fais afficher du texte simple, il ne passe pas non plus la création du client.

    Le problème c'est que le programme ne plante pas, il "fige" et n'affiche aucun message d'erreur.


    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
    /**Permet de récupérer un ensemble de Client Structure
         * contenu dans la base HyperFile.
         * @return Vector d'Objets de type Client Structure*/
        public Vector<ClientStructure> getAll() throws MappingException{
       Vector<ClientStructure> vector = new Vector<ClientStructure>() ;
       ClientStructure client;
       try{
                      ResultSet Res = this.Stat.executeQuery("SELECT * FROM CLIENT;");
          while (Res.next()) {
             System.out.println(Res.getString("CODTIERS"));
                     System.out.println(Res.getString("NOM"));
                     System.out.println(Res.getString("SIRET"));
                     System.out.println(Res.getString("ADR1"));
                     System.out.println(Res.getString("ADR2"));
                     System.out.println(Res.getString("ADR3"));
                     System.out.println(Res.getString("CODPOS"));
                     System.out.println(Res.getString("VILLE"));
                     System.out.println(Res.getString("PAYS"));
                     System.out.println(Res.getString("TEL"));
                     System.out.println(Res.getString("TELEX"));
                     System.out.println(Res.getString("EMAIL"));
                     System.out.println(Res.getString("FAX"));
                     System.out.println(Res.getString("MEMO"));
                    
                     client = new ClientStructure(Res.getString("CODTIERS"),
                                                  Res.getString("NOM"),
                                                  Res.getString("SIRET"),
                                                  Res.getString("ADR1"),
                                                  Res.getString("ADR2"),
                                                  Res.getString("ADR3"),
                                                  Res.getString("CODPOS"),
                                                  Res.getString("VILLE"),
                                                  Res.getString("PAYS"), 
                                                  Res.getString("TEL"),
                                                  Res.getString("TELEX"),
                                                  Res.getString("EMAIL"),
                                                  Res.getString("FAX"),
                                                  Res.getString("MEMO"),
                                                  0,
                                                  0);
    
                     vector.add(client);
                 }
         Res.close();
         return vector;
       }catch(Exception e) {throw new MappingException("problème de requête");}
        }
    

  2. #2
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Bonjour,

    Avec certains drivers de DB, on ne peut lire qu'une seule fois l'information d'une ligne de recordset.

    La solution est qu tu copies directement les données du ResultSet dans ton objet client. Ensuite tu peux afficher ces données depuis l'objet client.
    Bien le bonjour chez vous
    Jowo

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Février 2006
    Messages : 49
    Points : 33
    Points
    33
    Par défaut
    C'est ce que j'ai fais, j'ai mis en commentaire l'affichage des données et fais afficher du texte pour vérifier la progression mais sa na pas marché...

  4. #4
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Février 2006
    Messages : 49
    Points : 33
    Points
    33
    Par défaut
    C'est bon j'ai trouvé, le problème vient du champ "Mémo" qui n'ai pas un champ texte, c'est un champ binaire...

    Comment faire pour le récupérer ?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Février 2006
    Messages : 49
    Points : 33
    Points
    33
    Par défaut
    en utilisant Res.getBinaryStream("MEMO"), je récupère le champ, mais comment faire pour récupérer le texte qu'il contient ?

  6. #6
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Regarde dans la FAQ de JDBC...
    Bien le bonjour chez vous
    Jowo

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/04/2011, 15h32
  2. HYPERFILE via VB ?
    Par alx dans le forum HyperFileSQL
    Réponses: 3
    Dernier message: 30/05/2002, 17h33
  3. webcam : lire sur un port usb en c/c++ ou java. sous win. ?
    Par flo007 dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 24/05/2002, 23h24
  4. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18
  5. Service de nommage java C++
    Par Anonymous dans le forum CORBA
    Réponses: 3
    Dernier message: 15/04/2002, 12h48

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