03/05/2024
Windev et les Api Windows
Nb de visiteurs en ligne : 1
>> Introduction <<
>> Codes et Forum <<
>> Download <<
Rubrique
: 3 - HyperFile
Sujet
: Requête avec jointure
Auteur
Message
jpl
Posté le : 05/02/2003 11:27:12
Bonjour
Je fais une requete sur 3 tables (donc 2 jointures) en SQL sur des fichiers HF. Je trouve le résultat très long (environ 1s pour 2 lignes de résultat).
Je connais plus le SQL que les fonctions H...
Sous Oracle, ca marche nickel et c'est très rapide.
Comment faire avec une fonction H ? Avec ou sans SQL ?
J'utilise 5.5 et ces tests ont été fait en version monoposte.
Merci.
Dim
Posté le : 06/02/2003 12:24:31
Salut
Le temps de réponse ne dépend pas toujours du nombre d'enregistrements retourné mais plutot du nombre d'enr. à lire et des clés de tes fichiers.
As-tu testé les vues ?
jpl
Posté le : 06/02/2003 13:41:57
Hello
Ce ne sont que des données de test donc il n'y a que 2 enregistrements.
Les clés sont des entiers et entiers courts. Et comme je veux tous les enregistrements, il n'y a pas d'autres conditions que les jointures.
Non je n'ai pas essayé les vues. Comment crée-t-on une vue sur 3 tables ?
Merci.
Dim
Posté le : 06/02/2003 14:17:38
Re
1 sec pour 2 enregistrements...
tu dois avoir un problème dans ton code...
faudrait donner la structure de tes fichiers, on y verra peut-être plus clair.
°¨¨ JL ¨¨°
Posté le : 06/02/2003 15:03:52
Salut,
Pour les ordres HF tu peux faire un truc du style :
Soit un fichier A principal qui contient par ex les ordi du réseau, dans ce fic, tu as une clé 'étrangère' pointant sur un fichier B contenant des cartes vidéo, et une autre clé pointant sur un fichier C contenant les modèles de processeurs.
Ce qui nous donne :
- Fichier A
Clé principale unique : IDPoste n° de poste par ex
../..
Clé pointant vers Fichier B qui correspond à l'id de la carte vidéo : IDCarte_Vidéo
Clé pointant vers Fichier C qui correspond à l'id du processeur : IDProcesseur
- Fichier B
Clé principale unique : Id de la carte vidéo IDVidéo
- Fchier C
Clé principale unique : Id du proc IDProc
Donc quand tu fais un down du fichier A tu vas faire un truc comme cela :
hlitpremier( Fichier A, IDPoste )
tanque pas h.endehors
// recherche de la carte vidéo
hlitrecherche( Fichier B, IDVidéo , IDCarte_Vidéo )
si h.trouve alors // tu prend les données que tu veux
../..
fin
// recherche du proceseur
hlitrecherche( Fichier C, IDProc , IDProcesseur )
si h.trouve alors
../..
fin
// affichage des donnée dans une table mémoire par ex
// ou traitement de ce que tu veux
../..
hlitsuivant( Fichier A, IDposte)
fin
en espèrant que cela répond à tes interrogations...
A+
jpl
Posté le : 06/02/2003 16:16:23
Je vais essayer ta solution JL
Merci à tous.
>>
Poster un message dans un NOUVEAU sujet.
>>
Poster un message dans ce sujet.