ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Forum AtoutFox : Re: Bases SQL et multi-threading   

Sujet

rss Flux RSS des derniers messages

Vous devez vous identifier pour pouvoir poser une question ou répondre.

ven. 29 janvier 2016, 10h42

FoxInCloud (Th. Nivelet)
France France

atoutfox.public.association

Re: Bases SQL et multi-threading

Pour suivre sur cette question, j'ai trouvé une excellente solution : cursorAdapter.BeforeCursorFill()

Cette méthode m'a permis de bâtir une requête SQL adaptée à chaque utilisateur qui, au lieu d'une cascade de conditions logiques comme dans le SQL de la vue, n'injecte que les conditions strictement nécessaires à chaque utilisateur.

La requête qui n'était pas optimisable avec une vue à cause des OR (Optimizable OR Not Optimizable = Not Optimizable), devient optimisable à tous les coups.

Cette méthode m'a aussi permis d'ajouter des conditions de filtre contextuelles supplémentaires, telle que des bornes de dates afin de limiter le nombre d'enregistrements : d'abord une requête de comptage, ultra rapide, puis le calcul des plages de dates - mois, trimestres ou années - limitant à 1.000 enregistrements par plage.

Au final la requête est passée de 10 secondes -- dans le pire des cas -- à 50 ms.

A mon sens le cursorAdapter (CAD) offre le meilleur de 2 mondes: la vue (paramétrée) et le SQL direct (pass-through pour une base distante):
- comme une vue il s'occupe des mises à jour (where type, key field, etc., et aussi .noDataOnLoad)
- on peut contruire la requête dynamiquement comme avec le SQL direct
- en ajoutant le CAD au dataEnvironment et en définissant bien son .cursorSchema, on conserve l'intellisense sur les champs comme avec une vue dans le DE.

Franchement c'est une excellente surprise -- j'ai encore bien du grain à moudre avec VFP9!

Le sam. 09 janvier 2016, 11h15 FoxInCloud a écrit :
> Merci Michel
>
> Je vais optimiser en VFP avant de passer à SQLserver

Permalink : http://www.atoutfox.org/nntp.asp?ID=0000017235
20 088 messages dans le forum • Liste complète des messages

Publicité

Les pubs en cours :


www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3