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

NetBeans Java Discussion :

[Visual Web] [SJSC] Concaténation dans requête SQL


Sujet :

NetBeans Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Par défaut [SJSC] Concaténation dans requête SQL
    Bonjour tout le monde,

    Toujours sur mon petit Sun Java Studio Creator, je voudrais savoir comment puis-je concaténer 2 colonnes dans une requête SQL...

    Je travaille avec MySQL, par le biais de J/Connector, et ma requête ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    eq_intervenantRowSet.setCommand("SELECT ALL eq_intervenant.IdIntervenant, eq_intervenant.Nom + ', ' + eq_intervenant.Prenom  FROM eq_intervenant ORDER BY eq_intervenant.Nom ASC");
    Elle ne me rend que des '0' ... Idem si j'utilise l'opérateur || à la place du +.

    Une idée qui pourrait m'éclairer ??

    Merci d'avance !

  2. #2
    Membre confirmé Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Par défaut
    Idem avec l'opérateur CONCAT(), mais en pire : j'ai une SQLException qui est levée...


  3. #3
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 12
    Par défaut
    Une solution serait de rapatrier le nom et le prénom à part et de les réunirs toi meme en les concatenants dans ton code Java.

    Sinon je regarde quand meme pour une solution avec SQL.

  4. #4
    Membre confirmé Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Par défaut
    En fait je ne peux pas, (du moins de façon simple) car je lie le résultat de cette requête aux éléments d'une liste déroulante (dropdown sous SJSC), qui doit donc m'afficher "Nom, Prénom" au lieu de "Nom" tout court...

    Je vais quand même tenter le chose, avec une liste ca devrait pouvoir passer...

    Merci !

  5. #5
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 12
    Par défaut
    De rien

  6. #6
    Membre confirmé Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Par défaut
    Hello,

    Bon ta méthode marche, si ce n'est que je ne peux plus lier ma liste déroulante au tableau qui en dépend... En effet, j'affiche bien "Nom, Prénom", mais ne peux plus associer cet item à l'identifiant attribué au nom, et donc mon tableau qui se remplit selon l'identifiant sélectionné ne se remplit plus...

    (J'ai été clair là ?? )

    Il faudrait donc que je puisse y arriver directement dans la requête. J'ai posté un message sur le site de Sun dédié à SJSC, mais n'ai pas encore eu de réponse.

    ++

  7. #7
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 12
    Par défaut
    arf, effectivement ça devient embetant pour toi.

    Le mieux serait de trouver comment concaténer avec SQL, une autre solution serait de constituer un tableau contenant les résultats de ta requete (id,nom,prénom) avec une clé "nom, prénom" en espérant ne pas avoir plusieurs Dupond ayant un prénom identique ?!

  8. #8
    Membre confirmé Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Par défaut
    Citation Envoyé par Hares
    avec une clé "nom, prénom" en espérant ne pas avoir plusieurs Dupond ayant un prénom identique ?!
    Justement je ne peux pas me le permettre.... Ya 3000 personnes qui bossent sur le site à recenser, dont 4 avec déjà le même nom de famille que moi qui ne suis que stagiaire, donc les probabilités sont contre moi...

  9. #9
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 12
    Par défaut
    oki je continue à chercher du coté SQL.

  10. #10
    Membre confirmé Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Par défaut
    Je ne sais pas si SJSC utilise une syntaxe du SQL qui lui est propre...
    Si j'utilise ||, il me renvoie des '0', et si j'utilise un +, des '0.0'. Il doit donc s'agir d'opérateurs sur numériques.

    En revanche, CONCAT() n'a même pas l'air d'exister. Et je ne trouve rien de + () sur le net...

    Comment ça marche, avec un autre éditeur de JSP ?

    En tout cas merci pour le coup de pouce, je me sens un peu moins seul

    ++

  11. #11
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 12
    Par défaut
    De rien, le forum est là pour ça

    Quant aux autres éditeurs de jsp, je ne saurais pas te répondre.

  12. #12
    Membre confirmé Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Par défaut
    Et au niveau de la JDBC ?? Tu penses que ce sont les SQL statements de la JDBC qui sont utilisés dans SJSC ? Parce que j'ai trouvé ça : http://java.sun.com/j2se/1.3/docs/guide/jdbc/getstart/statement.html

    et plus particulièrement :
    Citation Envoyé par Sun JDBC
    fn for scalar functions

    Almost all DBMSs have numeric, string, time, date, system, and conversion functions on scalar values. One of these functions can be used by putting it in escape syntax with the keyword fn followed by the name of the desired function and its arguments. For example, the following code calls the function concat with two arguments to be concatenated:

    {fn concat("Hot", "Java")};
    Je peux pas tester pour cause de week-end, mais tu penses que c'est ça qu'il me faut ? Parce que j''ai pas trop bien pigé comment on s'en servait, là... J'insère ça dans ma requête ? A part ?

    ++

    :

  13. #13
    Membre confirmé Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Par défaut
    Citation Envoyé par Original Prankster
    Je travaille avec MySQL, par le biais de J/Connector, et ma requête ressemble à ça :
    Code:
    eq_intervenantRowSet.setCommand("SELECT ALL eq_intervenant.IdIntervenant, eq_intervenant.Nom + ', ' + eq_intervenant.Prenom FROM eq_intervenant ORDER BY eq_intervenant.Nom ASC");
    Je viens de me rendre compte d'un truc : c'est pas le ORDER BY qui pose problème ?? Faudrait que je sélectionne le nom à part également, du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    eq_intervenantRowSet.setCommand("SELECT ALL eq_intervenant.IdIntervenant, eq_intervenant.Nom, eq_intervenant.Nom + ', ' + eq_intervenant.Prenom FROM eq_intervenant ORDER BY eq_intervenant.Nom ASC");
    ... [/quote]

  14. #14
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 12
    Par défaut
    Salut,

    Jai trouvé ceci sur le site de MySQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CONCAT Function :  Returns the string that results from concatenating the arguments. Returns NULL if any argument is NULL. May have one or more arguments. If all arguments are non-binary strings, the result is a non-binary string. If the arguments include any binary strings, the result is a binary string. A numeric argument is converted to its equivalent binary string form; if you want to avoid that you can use explicit type cast, like in this example: SELECT CONCAT(CAST(int_col AS CHAR), char_col)
    A l'url : http://dev.mysql.com/doc/mysql/en/string-functions.html

    Va y faire un tour.

  15. #15
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 12
    Par défaut
    Autre exemple avec MySQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT CONCAT(first_name, ' ', last_name) FROM citizen WHERE income/dependents > 10000 AND age > 30;

  16. #16
    Membre confirmé Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Par défaut
    Citation Envoyé par Original Prankster
    c'est pas le ORDER BY qui pose problème ??
    De toute évidence non, puisque dans PHPMyAdmin, cette requête marche parfaitement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT eq_intervenant.IdIntervenant, CONCAT (eq_intervenant.Nom, ',', eq_intervenant.Prenom)
    FROM eq_intervenant
    ORDER BY eq_intervenant.Nom ASC;
    En revanche, dès que je l'applique dans mon code, cela ne marche plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    eq_intervenantRowSet.setCommand("SELECT eq_intervenant.IdIntervenant, CONCAT (eq_intervenant.Nom, ',', eq_intervenant.Prenom) FROM eq_intervenant ORDER BY eq_intervenant.Nom ASC");
    J'ai par conséquent essayé d'appliquer ce que j'ai trouvé ici : http://java.developpez.com/faq/jdbc/...tatement#echap
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    eq_intervenantRowSet.setCommand("SELECT eq_intervenant.IdIntervenant, {fn concat (eq_intervenant.Nom, eq_intervenant.Prenom)} FROM eq_intervenant ORDER BY eq_intervenant.Nom ASC");
    Echec aussi...

  17. #17
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 12
    Par défaut
    essaye par une autre méthode que setCommand en utilisant un autre objet que RowSet ?

  18. #18
    Membre confirmé Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Par défaut
    Le problème est que ma requête ne peut être interprétée par le driver JDBC ainsi... Que puis-je utiliser d'autre ?

  19. #19
    Membre habitué
    Inscrit en
    Août 2004
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 12
    Par défaut
    je vais peut etre dire une betise mais ce que tu me dis me fait penser à quelque chose : Est ce que la version des drivers de Mysql est compatible avec la version de JDBC ?

    J'ai cru lire dans le livre 'Au coeur de Java', si je me souviens bien, qu'il y avait des fois des problèmes à ce niveau là.

  20. #20
    Membre confirmé Avatar de Original Prankster
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    226
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 226
    Par défaut
    Oui je le pense, étant donné que je bosse avec ça depuis le début et que ça ne m'a jusqu'à présent jamais posé de problème...

    Dans tous les cas je dois migrer vers Oracle 9i pour la mise en production (drivers Oranxo)... Je m'y attelle actuellement, on dirait que la concaténation est acceptée (avec l'opérateur ||), mais j'ai pas encore exécuté le projet pour pouvoir en être sûr (d'autres mises au point à faire)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [SQL2K] Pb concaténation champs dans requête sql
    Par mariemor64 dans le forum Développement
    Réponses: 4
    Dernier message: 03/10/2007, 16h01
  2. [SQL2K] Pb concaténation champs dans requête sql
    Par mariemor64 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 03/10/2007, 16h01
  3. TEdit.Text dans Requête SQL?!?
    Par zarbydigital dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/10/2005, 09h37
  4. Procédure stockée, concaténation dans requête
    Par sbeu dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 01/08/2005, 12h03
  5. ASP et valeur NULL dans requêtes SQL
    Par chuck_m dans le forum ASP
    Réponses: 7
    Dernier message: 13/08/2004, 11h15

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