> Tous les forumsAutres langages

 Requete SQL ou code javaSujet résolu
Statut du sujet : RESOLU Imprimer
 fennec.
  Posté le 23/11/2007 @ 12:09  
 Petit astucien

215 Messages
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)
 Afficher le profil de fennec.Envoyer un message privé à fennec.
 
 
Publicité
 breizhbugs  Posté le 23/11/2007 à 12:56  
Astucien

3001 Messages
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. }

Afficher le profil de breizhbugs Voir la configuration de breizhbugsEnvoyer un message privé à breizhbugs
 Revenir en haut de la page
 fennec.  Posté le 26/11/2007 à 10:27  
Petit astucien

215 Messages
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
Afficher le profil de fennec.Envoyer un message privé à fennec.
 Revenir en haut de la page
 breizhbugs  Posté le 26/11/2007 à 11:26  
Astucien

3001 Messages
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!)

Afficher le profil de breizhbugs Voir la configuration de breizhbugsEnvoyer un message privé à breizhbugs
 Revenir en haut de la page
 fennec.  Posté le 27/11/2007 à 10:56  
Petit astucien

215 Messages
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
Afficher le profil de fennec.Envoyer un message privé à fennec.
 Revenir en haut de la page
 fennec.  Posté le 27/11/2007 à 12:43  
Petit astucien

215 Messages
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
Afficher le profil de fennec.Envoyer un message privé à fennec.
 Revenir en haut de la page
 breizhbugs  Posté le 27/11/2007 à 13:14  
Astucien

3001 Messages

Apparement non,

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

Afficher le profil de breizhbugs Voir la configuration de breizhbugsEnvoyer un message privé à breizhbugs
 Revenir en haut de la page
 fennec.  Posté le 28/11/2007 à 08:37  
Petit astucien

215 Messages
merci beaucoup je vais essayer de voir sur un forum pour les data base
Afficher le profil de fennec.Envoyer un message privé à fennec.
 Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte



Les sujets pertinents liés
resultat requete SQL et TextArea
gestion de resultat de requete MSQL et JAVA
[JAVA] Test de XQuery SAXON - Pb de Compilation
le publipostage via excel avec requete de choix..
java access
erreur java
HELP requete sql merci...
connectio a une db oracle
VB6 : Ecrire un RecordSet dasn un .TXT
Probleme avec un Recordset sous VBA pour Access2k
Access - VBA - probleme de date dans requete sql
convertion du type string au type double
message Java
probleme fonction dessin
requête sql pour récupérer le type d'un champ
Ma fenetre s'affiche pas en java
mise a jour d'une table access
 
Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !



 > Tous les forumsAutres langages

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page