|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : septembre 2005 Messages : 181 ![]() |
Est-ce que quelqu'un connait la signification de la clause where ou 2=1? Je n'ai rien trouvé dans la doc.
Code :
.CommandText = "SELECT ATE.*, ATEPartNumber.strPartNumber" & ",ATEPartNumber.strDescription FROM ATE,ATEPartNumber where 2=1" |
|
|
00
|
|
|
#2 |
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Bonsoir,
Pour moi, WHERE 2=1 c'est équivalent à WHERE False . Ou c'est une erreur ou ça sert à retourner un jeu d'enregistrement vide ![]() A+ |
|
|
00
|
|
|
#3 | ||
|
Nouveau Membre du Club
![]() Inscription : septembre 2005 Messages : 181 ![]() |
Le code que je suis en train de vérifier en contient beaucoup et j'essaie de comprendre qu'elle en était la raison. Voici un autre exemple:
Code :
|
||
|
|
00
|
|
|
#4 |
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Bonjour,
C'est peut-être pour optimiser les performances du code. L'extrait de code réalise un ajout de données par l'intermédiaire d'un recordset. Avec une clause WHERE toujours fausse, on ouvre un recordset vide. Cela évite de charger le recordset avec tout le jeu de données, dont on n'a pas besoin si on ne veut faire que de l'ajout. On économise sur le temps de transfert du jeu de données dans le recordset. On peut faire une analogie avec un formulaire en mode entrée de données. A l'ouverture on a aucun enregistrement. On peut en ajouter et naviguer parmi les enregistrements que l'on vient d'ajouter. A+ |
|
|
00
|
|
|
#5 | |
|
Expert Confirmé
![]() Diem VOVivre Inscription : avril 2006 Messages : 2 644 ![]() |
salut acheo et LedZeppII
Citation:
si je ne me trompe le recordset se construit chez le client après transfert des données. et mettre un where oblige un traitement de comparaison sur l'ensemble des enregistrements (à moins qu'il y ai une optimisation en cas de false ce qui conduit à une évaluation systématique de la clause where qui ne parait pas évident) alors qu'une ouverture d'un recordset sans clause ouvre que partiellement le contenu de celui-ci. avec adOpenKeyset le contenu est déjà minimalisé... de plus une requete "insert into" serait sans doute plus optimal. donc, je suis pas convaincu qu'un where false soit plus rapide que sans clause. mais c'est sur, le recordset finale est vide donc consomme peu de ressource et si le maintient d'ouverture du recordset est justifié ca reste, si ce n'est une une réelle optimisation, du moins une tentative. |
|
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Inscription : septembre 2005 Messages : 181 ![]() |
D'accord. A la lumière de vos explications, je pense que je vais laisser le code tel quel en attendant d'avoir d'autre information.
Un gros merci à vous tous....très apprécié. Acheo |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com