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 :

JDBC verifier le contenu d'un resultset


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 19
    Par défaut JDBC verifier le contenu d'un resultset
    Salut à tous

    J'ai écrit un programme en java (voir le code ci-en bas) qui me permet de pomper une table dans une base de donnée 4D 2004_3 vers une base de donnée Mysql

    Ce programme marche! mais pas à tous les coups dans 50% des cas je reçoit le message

    java.sql.SQLException: com.fourd.jdbc.StatementImpl::executeSELECTCommand: Failed to execute SELECT command.
    Network problem - Server unreachable

    or donc puisque il marche une fois sur deux, ce n'est pas un problème de code en java, ce n'est pas un problème de configuration de la base, ce n'est pas un problème de reseau vu que les deux machines sont côte à côte....donc c'est quoi le problème??

    Pour y remédier, je vousdrais faire truc du genre:

    while ( ! ResultSet rs4 = pstmt.executeQuery() );

    grosso modo une boucle qui effectue la requette jusque à ce qu'elle réussisse.
    En PHP je sais que je peux tester si mysql_query retourne false mais en java il semble qu'il faut jouer avec les throws? non?

    quelque un peut il m'indiquer un petit tutoriel sur la gestion des erreurs "catch"" try" etc...sauf si il y a plus simple.

    Merci à vous et voici le code si jamais

    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
     
     
    // ****************************************** 
    // Code exemple test4Dconn.java 
    // par Bin Kobayashi 
    // ****************************************** 
     
    import java.sql.*; 
    import java.util.Properties; 
    import java.text.Format;
    import java.util.Calendar;
    import java.util.GregorianCalendar;
    import java.util.Date;
    import java.sql.Statement;
    import java.text.SimpleDateFormat;
    import java.io.*;
    import java.util.regex.Pattern;
    import java.util.regex.Matcher;
     
     
    public class evenements
    { 
        public static void main(String[] argv) 
        { 
    	try 
    	{ 
     
    	    // préparation de la date
    	    java.text.SimpleDateFormat formatermy = new java.text.SimpleDateFormat("yyyy-MM-dd");
    	    java.text.SimpleDateFormat formater4d = new java.text.SimpleDateFormat("dd/MM/yyyy");
    	    GregorianCalendar datedebut = new java.util.GregorianCalendar();
    	    datedebut.ADD(Calendar.DAY_OF_YEAR, -30); 
    	    String startdatemy= formatermy.format(datedebut.getTime());
    	    String startdate4d= formater4d.format(datedebut.getTime());
     
     
    	    //connection à 4D
        	    Properties props = new Properties(); 
        	    props.setProperty("user",""); 
        	    props.setProperty("password",""); 
        	    Class.forName("com.fourd.jdbc.DriverImpl"); 
        	    Driver driver = DriverManager.getDriver("jdbc:4d:127.0.0.1"); 
        	    Connection conn4 = driver.connect("jdbc:4d:192.168.xxxx:xxxx", props);         
     
    	    // Création du fichier de sortie
    	    FileOutputStream out;
    	    PrintStream p;
    	    out = new FileOutputStream("evenements.sql");
    	    p = new PrintStream( out );
     
     
    	    //Préparation de la requette sur 4D
    	    PreparedStatement pstmt = conn4.prepareStatement("select Nr_evenement,personnel,Nr_equipement,date_evenement,code_evenement,magasin from Atelier_evenements where date_evenement>?");
     
    	    //fromater la date de la requette
    	    String aDateString = startdate4d;
    	    SimpleDateFormat aFormatter = new SimpleDateFormat("dd/MM/yyyy");
    	    Date aDate = aFormatter.parse(aDateString);   
    	    pstmt.setDate(1,new java.sql.Date(aDate.getTime()));    
     
    	    // executer la requette 4D
    	    ResultSet rs4 = pstmt.executeQuery();      
     
    	    // Initialisation des chaines
    	    String s1, s2,s3,s4,s5,s6,s7,s8,s9;
     
    	    // enrichissement du ficher de sortie
    	    p.println ("/*Mysql input file:evenements*/");			                          
    	    p.println ("delete from 4D_evenements where date_evenement>'"+startdatemy+"';" );
    	    p.println("insert into 4D_evenements value ");
     
    	    BOOLEAN first=true;
    	    while(rs4.next()) 
    	    { 
     
    		s1 = rs4.getString("Nr_equipement"); 
    		s2 = rs4.getString("date_evenement"); 
    		s3 = rs4.getString("code_evenement");
    		s4 = rs4.getString("personnel"); 
    		s5 = rs4.getString("magasin"); 
    		s6 = rs4.getString("Nr_evenement"); 
     
    		// verifications sur les chaines
    		//IF (s6!=NULL) IF ( ! s6.matches("(\\d{4})-(\\d{2})-(\\d{2})"))   s6="null";
    		//s2= s2.replaceAll("\\'","\\\\'");    
    		//s1= s1.replaceAll(" ","_");
     
    		//ajouter la virgule
    		IF ( first==false) 
    		{
    		    p.println(",");
    		}
    		else
    		{
    		    first=false;
    		}
     
    		p.println ("('"+s1+"','"+s2+ "','"+s3+"','"+s4+"','"+s5+"','"+s6+"')");
     
    	    }
     
    	    p.println (";");    
    	    conn4.close(); 
    	    p.close();
     
    	} catch (Exception e) {System.out.println(e);}
        } 
    }

  2. #2
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Par défaut
    bonjour,

    pourtant selon le message ce serait un problème réseau. Il est dit clairement que le serveur est inaccessible
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éprouvé
    Avatar de flo.87
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 77
    Par défaut
    Si tu veux un tutoriel sur la gestion des exceptions, tu peux regarder celui de Sun : http://java.sun.com/docs/books/tutor...ons/index.html

    Même si tu as résolu ce problème autrement, tu risques d'avoir tôt ou tard besoin des exceptions.

  4. #4
    Membre émérite
    Avatar de kmdkaci
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 560
    Par défaut JDBC verifier le contenu d'un resultset
    Salut,
    Il indique bien que c'est un problème réseau, même s'il y a une multitude de problèmes réseau.
    Le fait que tes postes sont cote à cote, n'exclue pas un problème réseau, car ça peut venir de ton système, de tes cartes réseaux...etc

    Sinon, pour le try/catch tu peux lors de la connexion, et tu sauras si tu es bien connecté ou pas.

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Par défaut
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     	    props.setProperty("user",""); 
        	    props.setProperty("password","");
    c'est volontaire le nom de l'utilisateur et le mot de passe vide ?

    ---
    Farid

  6. #6
    Membre averti
    Inscrit en
    Novembre 2008
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 19
    Par défaut
    oui l n'y en a pas sur notre base de donnée elle est dans un VPN, mais il faudra que l'on en met un

    Si vous regardez bien l'erreur, elle se produit lors du "select" et pas lors de la connetion.

    La connection peut-elle "tomber" entre temps?

Discussions similaires

  1. Nombre de ligne contenu dans un ResultSet
    Par BRAUKRIS dans le forum JDBC
    Réponses: 3
    Dernier message: 12/09/2005, 10h40
  2. [JDBC] Nb de rows dans un resultSet
    Par Original Prankster dans le forum JDBC
    Réponses: 2
    Dernier message: 05/09/2005, 12h11
  3. [Oracle][JDBC]sauvgarde du contenu tables
    Par zaiane dans le forum JDBC
    Réponses: 4
    Dernier message: 05/08/2005, 11h18
  4. Réponses: 2
    Dernier message: 19/04/2005, 15h29
  5. [Struts][JDBC] Afficher le contenu d'un ResultSet
    Par ArseNic dans le forum JDBC
    Réponses: 11
    Dernier message: 26/01/2005, 11h11

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