|
Publicité ' | ||||||||||||||||||||||||
|
|
#41 | ||
|
Membre Expert
![]() Inscription : septembre 2009 Messages : 980 ![]() |
pour l'impression ou l'affichage :
Code :
Et pourquoi je dis qu'il faut un champs Id_localite disctinct dans le client pour eviter de faire une fonction lourde "ungluIds->array of integer". Après rien n'empèche, mais j'ai peur qu'avec 100000 entrées ou plus, on mette plus de 10 secondes à générer et corriger les ids. gluIds mets 5 seconde (4437ms) environ pour traiter 4 200 000 Id. (test basé sur 100 000 * 10 call gludIDs[ 42 ids ])
__________________
[ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ] Ma messagerie n'est pas la succursale du forum... merci! |
||
|
|
00
|
|
|
#42 | |
|
Membre éprouvé
![]() NABIL Enseignant Inscription : août 2008 Messages : 482 ![]() |
Citation:
Bonjour à tous, @ Dr.Who: merci pour ton aide . Oui c'est très rapide.Tu sais, j'ai restructuré toutes les tables de la base de donnée et j'ai réécrit tout depuis le début.Cette application peut-être finalisée que si je trouve une solution à ce souci qui est de grouper les id à l'affichage et à l'impression . Il me reste qu'à corriger l'erreur dans la procédure de notre ami SergioMaster (d'ailleurs merci aussi à lui de me prêter de l'aide). @ Serge : à propos de cette erreur , dis-moi où il faut corriger stp? Car comme je t'ai dis, la procédure loupe le dernier chiffre de la suite de série si on cherche à filtrer la query une une seul localité, par contre elle fonctionne sans souci s'il n'y a pas de filtre. Merci. NABIL74 |
|
|
|
00
|
|
|
#43 |
|
Membre éprouvé
![]() NABIL Enseignant Inscription : août 2008 Messages : 482 ![]() |
Bonsoir à tous,
@ Serge: Tu sais quand je fais le tri sur une localité,elle fonctionne très bien. J'ai rien changé dans ta procédure.En fait, j'ai vidé la table Clients et j'ai insérer à nouveau les Id_Clients et là boom ça marche! Pendant presque une semaine que ça me tape sur les nerfs seulement pour un vidage de la table Clients !!!! ![]() Un énorme merci à vous de m'avoir prêter de l'aide. Je ne sais pas comment te remercier mon cher ami Serge.Mille fois MERCI et bravo. ![]() Si tu fais un jour un tour en Algérie, on pourrait faire ensemble une belle partie de pêche. Encore fois merci. Pour moi ce topic est résolu et dieu merci Nabil |
|
|
00
|
|
|
#44 | ||
|
Membre éprouvé
![]() NABIL Enseignant Inscription : août 2008 Messages : 482 ![]() |
bonsoir,
je me demandais si on pourrait améliorer ça en faisant un Count des Id_Client selon chaque localité parce qu'avec : Code :
une idée? Merci |
||
|
|
01
|
|
|
#45 | |
|
Expert Confirmé
![]() ![]() |
Citation:
Avec Firebird ou Ms SqlServer, on utiliserait une Expression de Table Commune ou CTE (c. Message de @SergioMaster). Avec Paradox, comme je l'ai indiqué au début , je ferais cela en 2 étapes via une table temporaire ou un clientdataset.
__________________
Philippe. |
|
|
|
00
|
|
|
#46 | |
|
Membre éprouvé
![]() NABIL Enseignant Inscription : août 2008 Messages : 482 ![]() |
Citation:
La table temporaire je l'ai, mais j'ignore si elle aura avec les mêmes champs ou non. La procédure de Serge me va bien , les enregistrements sont poster dans cette table temporaire et puis je les récupère pour imprimer mon état, par contre pour faire un Count des id là je ne sais pas comment m'y prendre, ça me dépasse un peu A+ Nabil |
|
|
|
00
|
|
|
#47 | |||
|
Expert Confirmé
![]() ![]() |
Citation:
![]() Je reprends le code que j'avais écrit pour la recherche des intervalles et je vais modifier 4 lignes : Code :
__________________
Philippe. |
|||
|
|
00
|
|
|
#48 | ||
|
Membre éprouvé
![]() NABIL Enseignant Inscription : août 2008 Messages : 482 ![]() |
Bonsoir,
@ Ph.B : merci pour ton aide ![]() Voilà ce que j'ai fait avec la procédure de Serge: Code :
100-120 [21] mais s'il s'agit d'un seul chiffre, là pas de count ,ex affichage: 150 => rien. Ecoute, y a t-il pas une solution pour poster ce count dans un champ de la Table temporaire ? Merci A+ NAbil |
||
|
|
00
|
|
|
#49 | ||
![]() ![]() Serge GirardDéveloppeur informatique Inscription : janvier 2007 Messages : 4 272 ![]() |
Franchement l'effort n'était pas bien gros pour rajouter le nombre . Il me semble en plus que Ta modification apportée a amener une erreur grossière !
le Else après le -1 est un else de Case , pas du if snum<>wnum Je ne crois pas que tu ais bien saisi comment fonctionne cette fonction Code :
remarque pour la dernière ligne IntToStr(wnum-snum+1) aurait pu être remplacé par T+1 ce que tu n'as même pas remarqué , cependant pour la lisibilité entre le cas T>1 et EOF il vaut mieux laisser tel quel et non , on ne peut pas utiliser la fonction d'agrégat COUNT et la stocker dans la table temporaire tout simplement parce que tu ne connais pas le nombre de "suite" donc le nombre de champs "nombre" qu'il te faudrait à moins de faire un enregistrement par "suite"
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous |
||
|
|
00
|
|
|
#50 | ||||||
|
Membre éprouvé
![]() NABIL Enseignant Inscription : août 2008 Messages : 482 ![]() |
Citation:
@ Serge: Code :
Nantes,2704 // pas de [1] ?? Bordeaux,2071 // pas de [1] ?? Montpellier,2653 // pas de [1] Paris,1 [1], 61-65 [5], 100-120 [21], 200-210 [11], 240-250 [11], 3060 //ici pour 3060, pas de [1] ?? Cannes,2603 [1] // par contre ici c'est ok [1] Citation:
Code :
Nantes,2704 Bordeaux,2071 Montpellier,2653 Paris,1 [1], 61-65 [36], 100-120 [81], 200-210 [31], 240-250 [2811], 3060 Cannes,2603 [1] Serge, ne crois-tu pas que si on groupait les id de toute la localité , c'est mieux non? ex: Paris,1 [1], 61-65 [5], 100-120 [21], 200-210 [11], 240-250 [11], 3060 => Paris= 1 + 5 +21 + 11 + 11 + 1 = 50 Paris= 50 c'est ça qui est mieux. Pour poster le 50 dans la table temporaire, une idée? Merci A+ Nabil |
||||||
|
|
00
|
|
|
#51 | ||
|
Expert Confirmé
![]() ![]() |
Citation:
Citation:
__________________
Philippe. |
||
|
|
00
|
|
|
#52 | ||
|
Membre éprouvé
![]() NABIL Enseignant Inscription : août 2008 Messages : 482 ![]() |
Citation:
Citation:
! C'est vrai que dans cette application, j'ai un peu mélangé les pinceaux ![]() ![]() Nabil |
||
|
|
00
|
|
|
#53 | ||||
|
Expert Confirmé
![]() ![]() |
Citation:
![]() Donc, à partir de mon précédent postulat Citation:
Code :
__________________
Philippe. |
||||
|
|
00
|
|
|
#54 |
|
Membre éprouvé
![]() NABIL Enseignant Inscription : août 2008 Messages : 482 ![]() |
Merci beacoup Phillipe pour ton aide.
impécable !Pour info, c'est une application que je développe pour un ami à moi (gratuitement) qui possède une société de vente. Alors, il m'a demandé de lui codé une. Je n'ai pas eu trop de difficulter à le faire, sauf pour le groupage des ID, là je me suis arraché les cheveux Il a des clients dans pas mal de villes d'Algérie. Alors, il arrive des fois que dans une ville comme Alger, il y a plusieurs clients dans chaque arrondissements. Il m'a dis de faire aussi le groupage des ID suivant la Localité et Arrondissement(ou par Cité) Pardon pour ce changement de situation de dernière minute, après beaucoup d'efforts ! là, comment on peut adapter le code? Rappellons que l'objectif maintenant est : - Grouper les ID selon : la Localité et Arrondissement(ou Cité). - Et de le faire comme ça : Nantes, 2704, Arrondissement13 =1 Bordeaux,2071 , Arrondissement1 =1 Montpellier,2653 , Arrondissement19 =15 Paris,1-15, Arrondissement18 = 16 , 61-65 Arrondissement17 = 5 Cannes,2603 ,Arrondissement12 =1 Encore une fois Pardon les copains |
|
|
01
|
|
|
#55 | ||||||||
![]() ![]() Serge GirardDéveloppeur informatique Inscription : janvier 2007 Messages : 4 272 ![]() |
, ben moi j'abandonne , un cahier des charges qui change sans arrêt, une utilisation de techno obsolète , c'en est trop !pour conclure , voici une requête FIREBIRD qui fournirai les informations (j'y ai même inclus les districts) sans passer par procedures , uniquement des Common Table Expression et encore , je suis sur que c'est largement perfectible en utilisant la récursivité Code SQL :
Code SQL JEU d'essai :
Code SQL :
Citation:
en 'affinant' on arrive même a obtenir ceci Citation:
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous |
||||||||
|
|
10
|
|
|
#56 | |
|
Membre éprouvé
![]() NABIL Enseignant Inscription : août 2008 Messages : 482 ![]() |
Citation:
.et un grand Merci pour ta procédure de regroupement Merci pour la requête récursive sur Firebird. @ Phillipe : un grand Merci à toi aussi pour ta procédure de regroupement
|
|
|
|
00
|
|
|
#57 |
![]() ![]() Serge GirardDéveloppeur informatique Inscription : janvier 2007 Messages : 4 272 ![]() |
Code :
SELECT LOCALITE||' '||DISTRICT AS LOCALITE,NUMERO FROM CLIENTS ORDER BY LOCALITE,DISTRICT,NUMERO
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous |
|
|
00
|
|
|
#58 | |
|
Membre éprouvé
![]() NABIL Enseignant Inscription : août 2008 Messages : 482 ![]() |
Citation:
Merci pour ta réponse Serge, je l'ai testé hier comme tu me l'as dit, ça ajoute seulement LOCALITE et DISTRICT une après l'autre: Paris, District18. Sur Paradox le ||' '|| => ||', '|| Et pour la suite de série, même résultat qu'avant, pas de changement. si c'est possible d'obtenir ça , ça série la fin de notre galère : Nantes, 2704, Arrondissement13 =1 Bordeaux,2071 , Arrondissement1 =1 Montpellier,2653 , Arrondissement19 =15 Paris,1-15, Arrondissement18 = 16 , 61-65 Arrondissement17 = 5 Cannes,2603 ,Arrondissement12 =1. Merci |
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com