Exécution longue en VB 6.0

hbelkat Messages postés 10 Date d'inscription vendredi 7 juillet 2006 Statut Membre Dernière intervention 24 mars 2010 - 10 févr. 2008 à 09:30
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 10 févr. 2008 à 09:39
Voilà j’ai fait un petit logiciel qui calcule le paiement du loyer et quand j’exécute sa prend énormément  du temps pour chaque bénéficiaire il prend un Laps de temps considérable,


Donc je vois pas  le Pb si le nombre d’Adodc qui alourdis le programme ou autre chose, je vous remercie et bonne journée


HB.




 

2 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
10 févr. 2008 à 09:37
Salut,

Tout dépend comment tu fais... si tu fais une requête de modification de toutes les fiches de ta base, il est bien plus rapide (énormément plus rapide !) de faire une requête SQL du stype :
connection.execute("UPDATE TaTable SET TonChamp = TaValeur WHERE TaClause")

plutôt que :

Set recordset = connection.execture("SELECT * FROM TaTable WHERE TaClause")
while (not recordset.eof)
    recordset.fields("TonChamp").Value = TaValeur
    recordset.update
    recordset.moveNext
wend

N'oublie pas qu'une requête SQL ne se limite pas à un simple SELECT, il est tout à fait possible de faire des requêtes complexes avec des liaisons entre table qui font des calculs, des regroupements, etc.
Il est possible de faire quasiment tout ce qu'on peut faire en code dans une requête SQL (j'ai bien dit quasiment : la récursivité par exemple n'est pas possible).

De plus, n'oublie pas d'indexer les champs qui te servent à faire des recherches : cela augmente considérablement la vitesse des requêtes de sélection !
______________________________________
DarK Sidious
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
10 févr. 2008 à 09:39
Salut,

Autre chose : pourquoi utiliser des contrôles ADODC qui sont bien plus lourds que d'utiliser directement les classes de l'ADODB : chaque contrôle conserve une connection à la base, consomme plus de ressources, et ne sers à rien si tu ne les affiche par tous.

Normalement, il devrait y avoir qu'un seul contrôle par feuille (et encore, uniquement si c'est pour permettre à l'utilisateur de naviguer dans les enregistrements de la base) !
______________________________________
DarK Sidious
0
Rejoignez-nous