ORM_FormatBoolean
Convertit un booléen WLangage en littéral SQL adapté au provider courant. Évite au code applicatif de connaître les conventions de chaque moteur (les uns acceptent les littéraux TRUE/FALSE, les autres exigent des numériques 1/0).
📋 Description
ORM_FormatBoolean prend un booléen WLangage (Vrai / Faux) et retourne sa représentation textuelle sous la forme attendue par le moteur SQL courant. Le code applicatif n'a donc pas à se soucier de savoir si le provider attend TRUE/FALSE, 1/0, ou un autre format — la procédure choisit automatiquement.
C'est l'équivalent de ORM_Quote mais pour le type booléen : un helper de bas niveau utilisé pour construire des fragments de SQL directement injectables dans une requête.
1. Construire une clause WHERE manuellement avec un critère booléen — par exemple « tous les clients actifs », « toutes les commandes archivées ». La procédure produit un littéral SQL valide qu'on concatène directement dans la requête.
2. Insérer ou mettre à jour une valeur booléenne dans une requête SQL composée à la main, en dehors des méthodes ORM standard qui prennent en charge automatiquement le formatage des membres mappés.
3. Garantir la portabilité multi-provider du code applicatif. Le même code WLangage produit des fragments SQL adaptés à MySQL, MariaDB ou PostgreSQL, sans branche conditionnelle dans l'applicatif.
La procédure détecte automatiquement le provider courant et adapte le format de sortie. Le code applicatif reste identique quel que soit le moteur cible.
🔑 Signature
LOCAL bBoolean est un booléen
) : chaîne
| Élément | Valeur |
|---|---|
| Visibilité | PUBLIQUE |
Paramètre
| Paramètre | Type | Rôle |
|---|---|---|
bBoolean | booléen | Valeur booléenne WLangage à convertir en littéral SQL. |
Valeur de retour
Une chaîne contenant le littéral SQL adapté au provider courant — voir §03 pour le détail des valeurs possibles. Le retour ne contient pas de quotes : c'est un littéral booléen ou numérique selon le moteur, prêt à être concaténé directement dans une requête.
🧭 Format de sortie selon le provider
La représentation choisie dépend du provider de la connexion ORM courante. Le tableau ci-dessous récapitule les formats produits :
| Provider | Vrai | Faux | Note |
|---|---|---|---|
| MySQL | 1 | 0 | MySQL ne dispose pas de type booléen natif — l'usage est l'entier TINYINT(1). |
| MariaDB | 1 | 0 | Comportement aligné sur MySQL. |
| PostgreSQL (mode natif, défaut) | TRUE | FALSE | PostgreSQL dispose d'un type BOOLEAN natif et accepte les littéraux. |
| PostgreSQL (mode compatibilité) | 1 | 0 | Mode optionnel — utile quand les tables PostgreSQL stockent les booléens en numérique pour rester compatibles avec une base MySQL/MariaDB partagée. |
Mode compatibilité PostgreSQL
Le mode compatibilité de PostgreSQL (sortie en 1/0 au lieu de TRUE/FALSE) est configurable via une option de ORM_Setup. Il est utile dans les contextes où le schéma PostgreSQL utilise des colonnes numériques pour représenter les booléens — typiquement par compatibilité avec un schéma MySQL/MariaDB historique.
La chaîne retournée ne contient jamais de quotes SQL : ni '1', ni 'TRUE'. Concaténée dans une clause WHERE bool_col = X, elle produit la syntaxe correcte sans qu'il soit nécessaire de l'entourer de quotes côté appelant.
💡 Exemples
Mode 1 — clause WHERE sur un critère booléen
Cas d'usage : charger tous les clients actifs.
Mode 2 — UPDATE manuel sur un drapeau booléen
Cas d'usage : marquer toutes les commandes du mois précédent comme archivées via une requête SQL directe.
"UPDATE commandes SET ARCHIVEE = %1 WHERE MOIS(DATE_CMD) = MOIS(NOW()) - 1", ORM_FormatBoolean(Vrai) ) // Exécution via l'API SQL standard (hors méthodes ORM) SI SQLExec(sRequête, "REQ_Archive") ALORS Info("Archivage effectué") FIN SQLFerme("REQ_Archive")
Mode 3 — paramètre booléen variable
Cas d'usage : afficher au choix les éléments actifs ou inactifs selon une option IHM.