× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Autres langages
 Requete SQL ou code javaSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
fennec.
  Posté le 23/11/2007 @ 12:09 
Aller en bas de la page 
Petit astucien
Bonjour a tous, j'aimerai pouvoir faire une requete qui me prend 3 enregistrments la requete serait Select * from exemple where id like 'abcdef' est t-il possible d'améliorer cette requete pour qu'elle me prenne l'enregistrement précédent et le suivant sachant que la primary key n'est pas un auto-increment dans le programme sa donnerai [a href=getNext.do?var=qrvd]precedent[/a] abcdef [a href=getNext.do?var=ertet]suivant[/a] la solution ne doit pas obligatoirement être une requete mais peut être du code java ps: la solution ne peut pas être de rapatrier toute les clé primaire dans un tableau car il y a plus de 20 000rows dans la db et que plusieurs utilisateurs peuvent effectuer ce traitement en même temps j'utilise oracle comme data base (je ne sais pas la version d'oracle et il m'est pour le moment impossible de vérifier si le code java pourrai fonctionner j'en suis a l'analyse technique du programme)
Publicité
breizhbugs
 Posté le 23/11/2007 à 12:56 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
Message original par fennec.
la requete serait Select * from exemple where id like 'abcdef'
[a href=getNext.do?var=qrvd]precedent[/a] abcdef [a href=getNext.do?var=ertet]suivant[/a]

C'est en php que tu appeles ta requete et c'est la partie dans le like qui est variable si j'ai bien compris...

je connais pas le php mais peut etre peut tu faire une fonction du style

  1. string fonction (string parametre)
  2. {
  3. string requete = "select * from exemple where id like '" + parametre + "'";
  4. return (execute(requete));
  5. }

fennec.
 Posté le 26/11/2007 à 10:27 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
Bonjour, non mon application ne sera pas écrite en php mais en J2EE oui la partie dans le like est variables selon cette valeur j'aimerai pouvoir en même temps rapatrié l'enregistrement précendent et le suivant
breizhbugs
 Posté le 26/11/2007 à 11:26 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
fennec. a écrit :

Bonjour,

non mon application ne sera pas écrite en php

mais en J2EE

oui la partie dans le like est variables

selon cette valeur j'aimerai pouvoir en même temps rapatrié l'enregistrement précendent et le suivant

php ou java ca change rien!

Pour rapatrier l'element suivant, il faut avoir un moyen de connaitre l'identifiant précedent et suivant... or si ton identifiant est une chaine de caractere c'est pas facile. De plus si c'est pour rapatrier le precedent et le suivant, je suppose que si on clique sur "suivant" il faudra encore relancer la requete pour rapatrier le suivant etc, alors autant en rapatrier un certain nombre d'un coup pour limiter les accées au serveur de base de donner

Sinon ce qui est possible, c'est de rapatrier les resultats 10 par 10 (par exemple), a ton application ensuite de gerer la pagination:

SELECT *

FROM exemple

LIMIT 10, 20

est censée renvoyé les 11 résultats entre les lignes 10 et les lignes 20. (cette fonction ne marche pas sous acces!)

fennec.
 Posté le 27/11/2007 à 10:56 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
bonjour, en effet sa peut être une solution merci beaucoup pour la db il n'y a pas de problème ce n'est pas acces
fennec.
 Posté le 27/11/2007 à 12:43 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
limit ne fonctionne pas sous oracle

la solution que j'ai trouvé est celle si


dans un premier temps je récupère le numrow de l'enregistrement


select * from
(select id_varchar, ROWNUM num from
ma_table) where id_varchar like 'abcdef'

en second lieu

select * from
(select id_varchar, ROWNUM num from
ma_table) where num <= (ma variable java -5) and num >= (ma variable java +5)

y a t-il une autre solution?

celle ci serai un peu compliquée a gérer

Modifié par fennec. le 27/11/2007 12:47
breizhbugs
 Posté le 27/11/2007 à 13:14 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Apparement non,

mais peut etre devrais tu poser ta question dans un forum plus spécialisé en programmation/base de données...

fennec.
 Posté le 28/11/2007 à 08:37 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
merci beaucoup je vais essayer de voir sur un forum pour les data base
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
27,99 €Carte mémoire SDXC UHS-I U3 SanDisk Extreme 128 Go à 27,99 €
Valable jusqu'au 08 Juillet

Amazon fait une promotion sur la carte mémoire SDXC UHS-I U3 SanDisk Extreme 128 Go qui passe à 27,99 €. La livraison est gratuite. Cette carte mémoire offre des vitesses jusqu'à 95 Mo/s et est idéale pour les caméras et appareils photo HD. On la trouve ailleurs à partir de 45 €.


> Voir l'offre
24,99 €Clé USB 3.0 Sandisk Ultra 128 Go à 24,99 €
Valable jusqu'au 07 Juillet

Amazon propose la clé USB Sandisk Ultra d'une capacité de 128 Go à 24,99 €. Cette clé USB 3.0 est compatible USB 2.0 et offre de bons débits d'environ 100 Mo/s en lecture et en écriture. Le connecteur est rétractable pour éviter qu'il prenne la poussière.


> Voir l'offre
139,99 €Disque dur externe Seagate Backup Plus Hub 8 To USB 3.0 à 139,99 €
Valable jusqu'au 08 Juillet

Amazon propose actuellement le disque dur externe Seagate 8 To Backup Plus Hub USB 3.0 à 139,99 € livré gratuitement. On le trouve ailleurs à partir de 200 €. Grâce à la connectique USB 3.0 (compatible USB 2.0), ce disque dur vous offrira d'excellents débits pour vos transferts et vos sauvegardes. Doté de deux ports USB intégrés en façade, ce disque vous permet de sauvegarder vos fichiers, ainsi que vos photos et vidéos, tout en parcourant et en rechargeant votre tablette, smartphone ou appareil photo, même si votre système est éteint ou en veille.


> Voir l'offre

Sujets relatifs
parametrage du code java pour imprimer
[java] Simplification code
gestion de resultat de requete MSQL et JAVA
Classer une arraylist (java)
Ameliorer le Main "Java" avec les fonctions & procédures
Rafraichir un tableau en java
Calcul du jour d'après - - > java
encore java
Filter un fichier CSV en Java
java error
Plus de sujets relatifs à Requete SQL ou code java
 > Tous les forums > Forum Autres langages