begin process at 2012 05 25 00:01:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Foxpro

 > 

Divers

 > 

Débutant(e)

 > 

Requête sur FoxPro via OLEDB & SEEK


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Requête sur FoxPro via OLEDB & SEEK

mercredi 4 février 2009 à 09:52:46 | Requête sur FoxPro via OLEDB & SEEK

Therian

Bonjour,
 
Voilà plusieurs jours que je cherche une solution, parcourant atoutfox et foxprofr et tombant sur plusieurs messages proposant des pistes intéressantes. Cependant, vu mon niveau sur FoxPro (qui au début de la semaine était inexistant), je ne parviens pas à tester certaines de ces solutions.
 
Voici mon problème :
J'ai une page asp (sur un serveur différent de celui de Foxpro) qui doit afficher des données depuis la plus importante des tables (dbf de 776MB) du serveur Foxpro. Quand j'effectue la requête avec l'outil de Foxpro, le résultat arrive en quelques secondes. En revanche, sur la page asp, la même requête met 4 min, ce qui est beaucoup pour un affichage intranet.

La table dbf a bien des index, mais je me demandais si ils étaient bien utilisé via OLEDB. Je suis notamment tombé sur ce post où il est question d'utiliser les commandes en natif comme le SEEK. 

J'ai passé mon après midi hier à essayer de comprendre comment cela fonctionne mais je n'y parviens pas et l'aide sur l'utilisation du VFP OLEDB (v6) dont j'entends parler partout reste introuvable.
 
Pourriez vous m'éclaircir sur ce SEEK (ou sur une autre méthode pour optimiser ma requête) ?
 
Merci d'avance.
 
Ci-dessous voici un extrait du code de ma page :
 
strconn = "Provider=VFPOLEDB.1;Data Source=\\192.168.xx.xx\ste01\;Mode=ReadWrite|Share Deny None;Password='';Collating Sequence=MACHINE"
' >>>J'ai essayé avec et sans le collating, j'ai le même temps
 Set conn = CreateObject("ADODB.Connection")
 conn.ConnectionString = strconn
 conn.ConnectionTimeout = 300
 conn.Open
 
 Set Rs2 = server.CreateObject("ADODB.Recordset")
 strRs2 ="select a.dateoper, a.serie, a.user, a.numero, a.nbrm3 from GB_HIST a where operation = '60' and fichier = ''"
 ' >>>il existe des index sur fichier et sur operation
 Set Rs2 = conn.Execute(strRS2)
mercredi 4 février 2009 à 10:20:53 | Re : Requête sur FoxPro via OLEDB & SEEK

Therian

(le lien n'a pas fonctionné, le voici :
http://www.foxprofr.com/forum/sujet-FORCER-UTILISATION-INDEX-DANS-REQUETE-VB_786453.aspx 
)
vendredi 6 février 2009 à 12:02:06 | Re : Requête sur FoxPro via OLEDB & SEEK

MichelAtoutFox

Membre Club

Bonjour,

si mes souvenirs sont bons, l'aide est disponible dans le pack d'install de VFPOLEDB, que tu trouveras sur le site de Microsoft. (http://www.microsoft.com/downloads/details.aspx?FamilyId=E1A87D8F-2D58-491F-A0FA-95A3289C5FD4&displaylang=en)

Sur le fond du problème, VFPOLEDB utilise les index exactement de la même façon que VFP.
Je ne serais pas étonné que le problème vienne en effet de la séquence de Collate. Il faudrait vérifier quelle est la séquence qui a été utilisée lors de la création des index, et essayer avec la même séquence dans ta connectstring.
J'ai déjà vu des dégradations de perf de cette importance (et même pire) à cause de ces séquences de collate.

Qu'appelles-tu "l'outil de FoxPro"? tu veux parler de l'interface de développement?

vendredi 6 février 2009 à 13:49:52 | Re : Requête sur FoxPro via OLEDB & SEEK

Therian

Pour l'aide, c'est le fichier msm? (si oui, je ne sais pas trop comment le lire)

Pour le collate, comment je l'ai mis, j'ai essayé avec et sans et cel an'a eu aucun effet. Comment puis-je faire pour vérifier la séquence de collate ?

L'utilitaire que j'ai sur foxpro est un petit logiciel fourni par l'éditeur du logiciel fait en foxpro où je peux voir les dbf, leur structure, leurs index et tester des lignes de commandes, mais je n'y ai pas vu d'information sur le collate.
vendredi 6 février 2009 à 14:40:33 | Re : Requête sur FoxPro via OLEDB & SEEK

MichelAtoutFox

Membre Club
Réponse acceptée !

non, le msm c'est un fichier de package à joindre à un install si on veut y inclure l'install du vfpoledb.

l'aide de vfpoledb est en ligne sur MSDN
(http://msdn.microsoft.com/en-us/library/aa976965(VS.71).aspx)

tu trouveras aussi des exemples sur le Visual FoxPro Wiki avec entre autres un exemple pour des pages ASP dans lequel cette question du collate est abordée.
( [ Lien ])

pour le collate, il faut comprendre que ce n'est pas "machine" ou rien : il y a de nombreuses séquences de collate (les plus fréquentes en France sont MACHINE, GENERAL, FRENCH) et il te faut savoir sur laquelle tes index ont été construits. Dans 1 premier temps, vérifie les perfs avec GENERAL puis avec FRENCH.
Si ça ne change rien, il te faudra utiliser la fonction IdxCollate() pour retrouver cette séquence dans les tag d'index.

Si ton utilitaire te permet de lancer des commandes Fox et d'en lire le résultat, alors SET("COLLATE") te renvoie le collate courant.

vendredi 6 février 2009 à 18:35:06 | Re : Requête sur FoxPro via OLEDB & SEEK

Therian

Merci beaucoup.

Effectivement, ça marche beaucoup mieux avec GENERAL (5s).

Encore merci.


Cette discussion est classée dans : requête, foxpro, conn, seek, oledb


Répondre à ce message

Sujets en rapport avec ce message

Valeur par defaut [ par youil ] Je travail en vb.net et je fais une requête sql dans une base de données foxpro EX: Insert Into tabclient (nom,prenom) values ('','')Dans ma table cli Faire une requête dans FoxPro [ par Jix11 ] Bonjour à tous,Je souhaite automatiser une requête du type:"alter table portefeu drop Codefuc;delete from portefeu where Type_pf ="XXX";dans FoxPro, d Connexion à FoxPro via php [ par loulou59 ] Bonjour, J'ai besoin de construire un Intranet en m'appuyant sur une bdd sous FoxPro. L'intranet est développé en php. J'ai pu faire une connexion vi seek majuscule minuscule [ par cudenetf ] bonjour, je travaille sous foxpro (2 je crois) pas visual foxpro avec des tables indexées j'ai fait une erreur en autorisant les minuscules/majuscules integrer html en foxpro [ par nabil2712 ] j'ai un probleme dans mon application de fin d'etudes >je l'ai fais avec foxpro mais j'arrive pa à integrer le code html et une image swf à mon projet problème d'insertion d'image dans une base foxpro [ par guyantoinemav ] Bonjour, j'ai un soucis pour insérer des images dans ma base foxpro. J'ai une application VFP 6 que je veux migrer vers c# en conservant la base de do SQLSERVER COMPACT ET FOXPRO [ par panterga ] Bonjour J'utilise visual studio 2005 en C# pour développer une appli sur PDA , cette application utilise SQLSERVER compact pour stocker des données e execution de windows media player 9 par foxpro [ par halimh ] salut svp j'ai besoin de connaitre la commande foxpro qui me permet de lire un ficheir video par windows media player 9 de manière automatique y a t'i foxpro et vista [ par info_maroc ] bonjour tout le monde j'ai installé une application développée sous visual foxpro 9 sur un pc équipé avec windows vista, l'application se lance norma


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,139 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales