begin process at 2008 07 09 03:07:27
1 207 190 membres
36 nouveaux aujourd'hui
14 130 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : affichage de données et tri [ Divers / Débutant(e) ] (zouheir_ali)

affichage de données et tri le 21/06/2007 15:35:52

zouheir_ali

Bonjour à tous,

je travaille avec vfp9 et sqlserver.
dans une form j'ai des zones et une grille qui sont reliés par le même curseur
je crée un curseur avec la commande sqlexec(...)
pour l'affichage des données j'utilise une méthode Affiche dont voici le code
select moncurseur
thisform.zone1.value = champ1
thisform.zone2.value = champ2
thisform.pageframe1.page1.zone3.value = champ3
.
.
dans Afterrowcolchange de la grille je fais appel de la méthode affiche
1. je pense que ce n'est pas une bonne méthode ou il existe d'autres?
2. si maintenant je veux trier une colonne je peux utiliser index on, mais il met beaucoup de temps car il existe beaucoup d'enregistrement.
pour cela je refait la requête en lui ajoutant un order by
code dans le header pour chaque colonne:
sqlexec(xconn,'select .... from ... order by champ1', 'moncurseur')
ainsi de suite pour les autres colonnes.
est-ce une bonne méthode?

Merci


Re : affichage de données et tri le 21/06/2007 17:12:34

MichelAtoutFox
Membre Club
Bonjour,

tes "zones", ce sont des textbox? si tu leur mets comme controlsource le nom du champ de l'alias de ton curseur, ils seront actualisés automatiquement, et ta méthode affiche ne contiendra au plus qu'un thisform.refresh

pour la question des index ou du order by, ça dépend de plusieurs choses:
beaucoup d'enregistrements, ça veut dire combien?
est-ce que tes tables cotés SQL on un index sur les champs sur lesquels tu vas demander un order by?

Re : affichage de données et tri le 22/06/2007 09:04:32

zouheir_ali

Bonjour,

Merci Michel de ta réponse.
1.les zones sont des textbox, des combobox, des edit ...
comment mettre controlsource vu que je n'utilise pas l'environnement de données?, je crée le curseur dans le load (ou init) de la form avec sqlexec.
2. il y a des millions d'enregistrements, il y a des index mais pas sur tous les champs désirés.
je doit donc mettre un index sur chaque champ que je veux trier?

Merci


Re : affichage de données et tri le 22/06/2007 10:35:02

MichelAtoutFox
Membre Club
Réponse acceptée !
Bonjour,

si tu connais le nom d'alias et le nom de champ, tu peux parfaitement mettre un controlsource à tes controles, même si tu n'utilises pas l'environnement de données

le meileur endroit pour créer ton cursor par sqlexec est la méthode "beforeopentables" de l'environnement de données (en mettant celui-ci à opentables=.F.)
cet évenement est l'équivalent du load pour le dataenvironment

si tu as des millions d'enregistrements, alors il faut absolument que l'order soit donné par le serveur (don order by dans ton select, et index pour chaque colonne sur le serveur)
mais en client/serveur, il est totalement déconseillé de remonter sur le client autant d'enregistrement, quelques milliers (moins de 10) devrait être un maximum à ne pas dépasser

Re : affichage de données et tri le 25/06/2007 10:00:03

zouheir_ali
Bonjour ,

Un grand Merci à toi Michel.


Classé sous : données, tri, affichage, méthode, value

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Boutique

Boutique de goodies CodeS-SourceS