mth_RenvoyerAttributSelonID
Recherche dans le tableau interne m_tabResults l'objet dont la clé primaire correspond à l'ID passé en paramètre, et retourne la valeur d'un attribut nommé. Recherche en mémoire — aucune requête SQL n'est émise.
📋 Description
mth_RenvoyerAttributSelonID permet de retrouver, parmi les objets présents dans m_tabResults, celui dont la clé primaire correspond à l'ID passé en paramètre, puis d'en extraire la valeur d'un attribut désigné par son nom.
La méthode est polymorphe : elle retourne un Variant, ce qui permet de récupérer indifféremment une chaîne, un entier, un booléen, une date ou tout autre type d'attribut sans typage à la déclaration.
1. Lookup ad-hoc sur un attribut quand l'ID est déjà connu. Cas le plus courant : on a en main l'ID d'un enregistrement (issu d'un sélecteur, d'un autre traitement, d'un paramètre…) et on veut récupérer une valeur précise sans reparcourir manuellement le tableau.
2. Évite de reparcourir m_tabResults manuellement. Plutôt qu'une boucle POUR avec test conditionnel sur la clé primaire, un appel direct résout le besoin en une ligne.
3. Alternative à mth_ChargerSelonID quand l'objet est déjà en mémoire. Si m_tabResults contient déjà l'enregistrement souhaité (typiquement après un mth_ChargerSelonClauseWhere ramenant une liste), inutile de redemander à la base — la lecture en mémoire est instantanée.
La méthode opère uniquement sur le tableau m_tabResults déjà chargé en mémoire. Aucune requête SQL n'est émise, aucun aller-retour réseau, pas d'impact sur la base. C'est une opération en O(n) sur la taille du tableau.
🔑 Signature
LOCAL nIDTuple est un entier,
LOCAL sNomAttribut est une chaîne
) : Variant
| Élément | Valeur |
|---|---|
| Visibilité | PUBLIQUE |
Paramètres
| Paramètre | Type | Rôle |
|---|---|---|
nIDTuple | entier | Valeur de la clé primaire de l'enregistrement recherché. Doit être strictement positif (> 0) ; toute autre valeur retourne Null immédiatement. |
sNomAttribut | chaîne | Nom de l'attribut à récupérer, sous la forme du nom du membre WLangage (ex : "m_DENOMINATION", "m_VILLE", "m_ID_CLIENT"). |
🧭 La clé primaire de la classe métier
La méthode recherche dans m_tabResults l'objet dont le membre désigné comme clé primaire de la classe vaut nIDTuple. La résolution du nom du membre clé primaire est faite dynamiquement par le framework, ce qui rend la méthode tolérante à toutes les conventions de nommage utilisées dans les classes métier.
Tolérance aux conventions de nommage
Que la clé primaire soit déclarée m_ID_CLIENT, m_IDClient, m_nID_CLIENT ou tout autre nom, la méthode fonctionne sans paramétrage supplémentaire. Le framework identifie le membre concerné via le mapping de la classe.
Cette méthode ne fonctionne que pour des objets dont la clé primaire est strictement positive (> 0) — c'est-à-dire des objets déjà enregistrés en base. Pour identifier un objet avant son enregistrement (PK = 0), utiliser plutôt mth_RenvoyerAttributSelonGUID qui s'appuie sur p_sGUIDTemp, attribué dès la construction de l'instance.
📤 Valeur de retour
La méthode retourne un Variant. Selon les cas :
| Cas | Retour |
|---|---|
| Objet trouvé, attribut renseigné | Valeur de l'attribut (type variable selon l'attribut) |
nIDTuple ≤ 0 (ID invalide) | Null |
m_tabResults est vide | Null |
| Aucun objet du tableau ne correspond à l'ID | Null |
<> NullLe retour Null couvre indifféremment les trois cas d'absence (ID invalide, tableau vide, ID non trouvé). Tester SI vRetour <> Null ALORS avant utilisation est la pratique courante.
💡 Exemples
Mode 1 — lookup nominal après chargement
Mode 2 — éviter une requête SQL redondante
Cas d'usage : on a déjà chargé une liste, et on veut consulter un attribut d'un élément précis sans relancer de requête.
Mode 3 — lookup défensif avec gestion du Null