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)