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]


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 25
    Points : 11
    Points
    11
    Par défaut [jdbc]
    bonjour à tous

    afin d'éviter à un utilisateur d'écraser une table existante, je souhaiterais pouvoir tester l'existence d'une table apres que l'utilisateur ai saisi le nom de table qu'il souhaite créer. comment puis-je faire ça?
    y a t'il une méthode toute simple qui teste l'existence d'une table?

    merci beaucoup.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Points : 432
    Points
    432
    Par défaut
    Il me semble qu'une table ca ne s ecrase pas comme ca.
    Si tu essai de créer une table dont le nom est déjà utilisé, il te renverra un Exception.
    Mess with the best, die like the rest!

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    plus précisément, je ne veux pas empécher l'utilisateur de créer une table avec un nom existant mais je veux l'avertir que la table précédente sera effacer (et non pas écrasée en effet )

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 77
    Points : 84
    Points
    84
    Par défaut
    Quelle différence fais-tu entre "écrasée" et "effacée" ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Points : 432
    Points
    432
    Par défaut
    Le problème reste le même, tu peux utiliser les exception pour savoir si la table existe.
    En pseudo-code ca donne ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    try {
          création de la table
    } catch (Exception e) {
           prévenir l'utilisateur que la table va etre effacée
           écraser la table
    }
    Mess with the best, die like the rest!

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par Vrylx
    Quelle différence fais-tu entre "écrasée" et "effacée" ?
    'ecrasée' je fais un create et il lève une exception car table existante
    'effacée' je fais un drop avant le create et pas de prob

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Points : 432
    Points
    432
    Par défaut
    Tu as des notions un peu bizard concernant 'effacer' et 'écraser'.
    Mais bon on ne va polémiquer sur le sujet trop longtemps
    Mess with the best, die like the rest!

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 77
    Points : 84
    Points
    84
    Par défaut
    Donc si on suit ce que tu dis voilà ce que pourrait être le pseudo code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    try {
       écraser_table;
    }
    catch(Exception e) {
       réponse = message_d'alerte;
       si réponse = OK
       alors effacer;
    }

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    en effet c'est pas plus compliqué que ça mais vu la tournure du code ça ne saute pas aux yeux.
    merci à vous
    si je me trompe dans mes définitions d'écraser et effacer, n'hésite pas à rectifier stp

    je devrais m'en tirer avec ça -> résolu

  10. #10
    Membre habitué Avatar de Oui-Oui MB
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2005
    Messages : 111
    Points : 127
    Points
    127
    Par défaut
    Pour tester l'existence d'une table, il suffit de faire une requête du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM nom_table
    Si la requête échoue, alors la table n'existe pas. Sinon elle existe. Donc dans le code ça serait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    try
    {
       executer(SELECT * FROM nom_table);
       La table existe !
    }
    catch (Exception e)
    {
      La table n'existe pas !
    }
    Que la Schtuche soit avec vous !!!

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 304
    Points : 348
    Points
    348
    Par défaut
    Pour moi si une table est écrasée cela signifie qu'elle est remplacée par une nouvelle table (même si elle porte le même nom).
    Par contre si elle est effacée, je comprends qu'elle existe toujours mais qu'elle est vide.

    Ca ne serait pas un peu plus logique?
    --Miss Gaëlle--

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    390
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 390
    Points : 432
    Points
    432
    Par défaut
    lol
    vous etes encore la dessus ?
    Bon ben dans ce cas je v donner mon point de vue

    Effacer une table plus de table : opérateur DROP
    Vider une table effacer le contenu : opérateur DELETE
    Ecraser une table sous entend que la table etait existante : operateur DROP suivit de CREATE avec le même nom
    Creer une table ben ca coule de source : juste l'opérateur CREATE

    Voila je pense que ca résume assez bien l'ensemble de mon point de vue sur la question.
    Mess with the best, die like the rest!

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 304
    Points : 348
    Points
    348
    Par défaut
    Citation Envoyé par barbu0055
    Effacer une table plus de table : opérateur DROP
    Ah bah tu vois! Pour moi opérateur DROP c'est pour supprimer et effacer = vider lol Bref, on va pas débattre là-dessus mais bon quand même
    --Miss Gaëlle--

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    non il me semble que drop table efface la table (elle n'existe plus) tu dois la recréer pour y insérer des trucs.
    mon blème venait aussi du fait que pour effectuer les tests, j'avais inséré un drop dans le code mais comme la table n'avait pas forcément encore été créée ça générait une erreur.
    menfin je trouve qu'il manque une méthode qui testerai vraiment l'existence d'une table car là, d'autre évènements que la 'non existence' peuvent lever l'exception.

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 304
    Points : 348
    Points
    348
    Par défaut
    Citation Envoyé par x-ben
    mon blème venait aussi du fait que pour effectuer les tests, j'avais inséré un drop dans le code mais comme la table n'avait pas forcément encore été créée ça générait une erreur.
    Tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DROP TABLE IF EXISTS lenomdetatable;
    --Miss Gaëlle--

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    tiens ça peut etre utile ça je connaissais pas le 'if exist'
    (menfin je viens d'essayer et ça me fait une sql exception)
    le seul petit prob c'est que cette technique va effacer la table sans prévenir le gars

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

Discussions similaires

  1. [JSP][JDBC]1 seule connexion à la DB(suite)
    Par betherb dans le forum JDBC
    Réponses: 6
    Dernier message: 14/08/2003, 10h02
  2. [POSTGRESQL et JDBC] la langue de moliere
    Par jah dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 15/05/2003, 11h21
  3. JBuilder 8 et JDBC/PostgreSQL
    Par nicox dans le forum JBuilder
    Réponses: 2
    Dernier message: 14/05/2003, 15h43
  4. [JDBC][connexion persistante] performances avec JDBC
    Par nawac dans le forum Connexion aux bases de données
    Réponses: 6
    Dernier message: 06/05/2003, 10h37
  5. insérer des caractères accentués INFORMIX/JDBC
    Par donde dans le forum Informix
    Réponses: 2
    Dernier message: 19/11/2002, 20h02

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