Référence · xFrameWork_CSHX2 ORM · Codes d'erreur
ERR_DB & ERR_ORM — Codes d'erreur
Registre centralisé de tous les codes d'erreur du framework xFrameWork_CSHX2 ORM. Définis dans xFrameWork_CSHX2_Error et accessibles via xFrameWork_CSHX2_Error.Singleton().pub_GetMessage(nCode, …).
xFrameWork_CSHX2_Error
Les codes suivent une numérotation hiérarchique sur 5 chiffres :
| Position | Signification | Valeur |
-2 | Classe — xFrameWork_CSHX2 ORM | Fixe |
GG | Groupe fonctionnel (SELECT=10, INSERT=20, DELETE=30…) | 2 chiffres |
LL | Séquence verticale — 99 = premier garde dans le code, descend vers 01 | 2 chiffres |
Le premier chiffre identifie le domaine fonctionnel. Quatre plages sont actuellement allouées :
| Plage | Domaine | Préfixe constantes |
-1xxxx | xFrameWork_CSHX2_DataBase — DDL, création base, schéma | ERR_DB_* |
-2xxxx | xFrameWork_CSHX2 — ORM (SELECT, INSERT, UPDATE, DELETE, LOCK, MongoDB…) | ERR_ORM_* |
-30xxx | xFrameWork_CSHX2_Transactions — COMMIT, ROLLBACK, initialisation | ERR_TXN_* |
-40xxx | mth_API_Call (flux API-first) — sérialisation, envoi HTTP | ERR_API_CALL_* |
ℹ️ Substitution de paramètres
Les messages contenant %1, %2… sont formatés par
pub_GetMessage(nCode, param1, param2, …). Les paramètres dynamiques
remplacent les marqueurs dans l'ordre. Un code inconnu retourne
❌ Code d'erreur inconnu : [code].
⚠️ Code générique
| Code | Constante | Usage |
| -999 | ERR_SQL_INVALID_REQUEST | Requête SQL invalide — code générique, utilisé avant l'introduction des codes hiérarchiques |
| Code | Constante | Message |
| -11099 | ERR_DB_TABLE_PROVIDER | Provider non supporté : %1 |
| -11098 | ERR_DB_TABLE_ABSENTE_ANALYSE | Table absente de l'analyse HFSQL : %1 |
| -11097 | ERR_DB_TABLE_VERIF_SQL | Erreur SQL vérification table : %1 |
| Code | Constante | Message |
| -11299 | ERR_DB_INDEX_SQL | Erreur SQL vérification index : %1 |
| Code | Constante | Message |
| -11399 | ERR_DB_SCRIPT_ECHEC | Échec script [%1] table [%2] : %3 |
| Code | Constante | Message |
| -11499 | ERR_DB_CHECK_PARAM_VIDE | Paramètre d'appel de la fonction incorrect. |
| -11498 | ERR_DB_CHECK_SQL | Erreur SQL vérification définition table : %1 |
| Code | Constante | Message |
| -11599 | ERR_DB_CREATEDB_PROVIDER | Provider non supporté pour la création de base de données. |
| -11598 | ERR_DB_CREATEDB_SQL | Erreur SQL création base de données : %1 |
| -11597 | ERR_DB_CREATEDB_CONNEXION | Erreur ouverture connexion : %1 |
| -11596 | ERR_DB_CREATEDB_CHANGECNX | Erreur changement connexion : %1 |
| Code | Constante | Message |
| -11699 | ERR_DB_RETRO_SQL_TABLES | Erreur SQL listing tables physiques : %1 |
| -11698 | ERR_DB_RETRO_SQL_COLONNES | Erreur SQL listing colonnes physiques : %1 |
| Code | Constante | Message |
| -11799 | ERR_DB_SCHEMA_LOCK | La base de données est actuellement en maintenance. |
| -11798 | ERR_DB_SCHEMA_INTEGRITY | Erreur d'intégrité dans la base de données. Table InfoSystem. |
| Code | Constante | Message |
| -11899 | ERR_DB_CHECKEXISTS_PROVIDER | Provider non supporté : %1 |
| -11898 | ERR_DB_CHECKEXISTS_SQL | Erreur SQL vérification existence base : %1 |
| Code | Constante | Message |
| -11999 | ERR_DB_CASSE_SQL | Erreur SQL détection sensibilité casse : %1 |
| Code | Constante | Message |
| -12099 | ERR_DB_INJECT_TABLE_VIDE | InjectFrameworkColumns : nom de table vide |
| -12098 | ERR_DB_INJECT_VERIF_SQL | Erreur vérification colonne %1.%2 : %3 |
| -12097 | ERR_DB_INJECT_ALTER_SQL | Erreur ALTER TABLE %1 ADD COLUMN %2 : %3 |
| Code | Constante | Message |
| -12199 | ERR_DB_ENCRYPT_PROVIDER | pub_Encrypt : provider non supporté (%1) |
| -12198 | ERR_DB_DECRYPT_PROVIDER | pub_Decrypt : provider non supporté (%1) |
| Code | Constante | Message |
| -12299 | ERR_DB_USER_LOGIN_VIDE | Paramètre non valide : sLogin |
| -12298 | ERR_DB_USER_PASSWORD_VIDE | Paramètre non valide : sPassword |
| -12297 | ERR_DB_USER_BASE_VIDE | Paramètre non valide : sNomBase |
| -12296 | ERR_DB_USER_PROVIDER | Provider non supporté : %1 |
| -12295 | ERR_DB_USER_SCHEMA_VIDE | Paramètre non valide : sSchema (requis pour PostgreSQL) |
| -12399 | ERR_DB_USER_CREATE_SQL | Erreur CREATE USER : %1 |
| -12398 | ERR_DB_USER_GRANT_DML | Erreur GRANT DML : %1 |
| -12397 | ERR_DB_USER_FLUSH | Erreur FLUSH PRIVILEGES : %1 |
| -12396 | ERR_DB_USER_GRANT_CONNECT | Erreur GRANT CONNECT ON DATABASE : %1 |
| -12395 | ERR_DB_USER_GRANT_SCHEMA | Erreur GRANT USAGE ON SCHEMA : %1 |
| -12394 | ERR_DB_USER_GRANT_TABLES | Erreur GRANT ALL TABLES IN SCHEMA : %1 |
| -12393 | ERR_DB_USER_DEFAULT_PRIVS | Erreur ALTER DEFAULT PRIVILEGES : %1 |
| Code | Constante | Message |
| -12499 | ERR_DB_META_INDEX_PROVIDER | pub_META_CreateUniqueIndex : provider non supporté |
| -12498 | ERR_DB_EXTENSION_SQL | Erreur vérification extension '%1' : %2 |
| -12497 | ERR_DB_EXTENSION_MANQUANTE | Extension PostgreSQL '%1' manquante — exécuter en superuser : CREATE EXTENSION %1; |
| Code | Constante | Message |
| -12599 | ERR_DB_DICT_LISTE_VIDE | pub_BuildDataDictionnary : HListeFichier a retourné une liste vide |
| -12598 | ERR_DB_NULL_INCONSISTENCY | Analyse NULL : %1 incohérence(s) détectée(s). |
📋 Codes xFrameWork_CSHX2 ORM — ERR_ORM_*
| Code | Constante | Message |
| -21099 | ERR_ORM_SELECT_LOCK_INVALIDE | Type de lock invalide dans m_nClauseLock : %1 |
| -21098 | ERR_ORM_SELECT_LOCK_SANS_TRANSACTION | Tentative de Lock sans transaction active. |
| -21097 | ERR_ORM_SELECT_LIMIT_INVALIDE | LIMIT invalide dans m_nClauseLimit : %1 |
| -21096 | ERR_ORM_SELECT_OFFSET_INVALIDE | OFFSET invalide dans m_nClauseOffset : %1 |
| -21095 | ERR_ORM_SELECT_ENREG_VERROUILLE | Enregistrement verrouillé |
| -21094 | ERR_ORM_SELECT_EXCEPTION | %1 (message SQL natif) |
| -21093 | ERR_ORM_SELECT_JOIN_HLITPREMIER | %1 (message SQL natif) |
| -21092 | ERR_ORM_SELECT_JOIN_EXCEPTION | %1 (message SQL natif) |
| Code | Constante | Message |
| -22099 | ERR_ORM_INSERT_BATCH_MODE_JOIN | INSERT batch non supporté en METADATA_MODE_JOIN — utiliser prv_SQL_InsertCore |
| -22098 | ERR_ORM_INSERT_PG_INTEGRITE | Afin d'assurer l'intégrité de la base de données, votre action a été annulée. |
| -22097 | ERR_ORM_INSERT_BLOCAGE_SELECT | Le contenu de la classe ne peut pas être enregistré. Vérifiez votre clause SELECT. |
| -22096 | ERR_ORM_INSERT_LAST_ID_SQL | %1 (message SQL natif) |
| -22095 | ERR_ORM_INSERT_LAST_ID_ZERO | Valeur de l'ID auto-incrémenté incorrecte (LAST_INSERT_ID = 0) |
| Code | Constante | Message |
| -23099 | ERR_ORM_DELETE_VERROUILLE | Enregistrement verrouillé par %1 |
| -23098 | ERR_ORM_DELETE_PROVIDER | Provider non supporté pour la suppression |
| -23097 | ERR_ORM_DELETE_TRAD_VERROUILLE | Traduction verrouillée par %1 |
| -23096 | ERR_ORM_DELETE_TRAD_PROVIDER | Provider non supporté pour la suppression des traductions |
| Code | Constante | Message |
| -24099 | ERR_ORM_LOCK_VERROUILLE | Enregistrement verrouillé par le poste : %1 |
| -24098 | ERR_ORM_LOCK_INTROUVABLE | Enregistrement introuvable (ID=%1, table=%2) |
| -24097 | ERR_ORM_UNLOCK_VERROUILLE | Déverrouillage refusé — verrou appartenant au poste : %1 |
| Code | Constante | Message |
| -25099 | ERR_ORM_FORM_PLUSIEURS_ENREG | Plusieurs enregistrements correspondent à cet ID (N° %1). Contactez la maintenance en urgence. |
| -25098 | ERR_ORM_FORM_DOUBLON_PK | Doublon sur la clé primaire. Contactez la maintenance en urgence. |
| -25097 | ERR_ORM_FORM_ENREG_INCONNU | L'enregistrement (ID N° %1) est inconnu. |
| Code | Constante | Message |
| -26099 | ERR_ORM_SEQ_INTROUVABLE | Aucune séquence définie pour %1.%2 |
| -26098 | ERR_ORM_SEQ_ALTER | %1 (message SQL natif) |
| -26097 | ERR_ORM_SEQ_SELECT_PG_CLASS | %1 (message SQL natif) |
| -26096 | ERR_ORM_SEQ_SELECT_MAX_PK | %1 (message SQL natif) |
| Code | Constante | Message |
| -27099 | ERR_ORM_META_UPSERT_SQL | Erreur %1 metadata %2/%3 : %4 |
| -27098 | ERR_ORM_META_UPSERT_PROVIDER | Provider non supporté pour l'opération metadata |
| -27097 | ERR_ORM_META_UPSERT_SELECT | Erreur SELECT metadata %1/%2 : %3 |
| -27096 | ERR_ORM_META_UPSERT_PK_INVALIDE | Clé primaire invalide pour l'opération metadata |
| -27089 | ERR_ORM_META_DELETE_SQL | Erreur suppression metadata %1/%2 : %3 |
| -27088 | ERR_ORM_META_DELETE_PROVIDER | Provider non supporté pour la suppression metadata |
| -27087 | ERR_ORM_META_DELETE_PK_INVALIDE | Clé primaire invalide pour la suppression metadata |
| -27079 | ERR_ORM_META_FORUPDATE_EXCEPTION | %1 (message SQL natif) |
| -27078 | ERR_ORM_META_FORUPDATE_SQL | Erreur verrou metadata %1/%2 : %3 |
| Code | Constante | Message |
| -28099 | ERR_ORM_UPDATE_INTROUVABLE | Enregistrement introuvable (ID=%1, table=%2) |
| -28098 | ERR_ORM_UPDATE_VERROUILLE | Enregistrement verrouillé sur un autre poste |
| Code | Constante | Message |
| -29099 | ERR_ORM_TRUNCATE_PARAM_VIDE | Nom de table vide — TRUNCATE impossible |
| -29098 | ERR_ORM_TRUNCATE_SQL | %1 (message SQL natif) |
| -29097 | ERR_ORM_MONGO_INSERT | Erreur insertion MongoDB : %1 |
| -29096 | ERR_ORM_MONGO_BUFFER_VIDE | ArchiveMongo : buffer de sérialisation vide |
| -29095 | ERR_ORM_MONGO_NOM_TABLE_VIDE | ArchiveMongo : nom de table SQL vide |
| -29094 | ERR_ORM_RAZ_TYPE_NON_GERE | Type WLangage non géré en RAZ : %1 |
📋 Codes xFrameWork_CSHX2_Transactions — ERR_TXN_*
| Code | Constante | Message |
| -30099 | ERR_TXN_LOCK_TIMEOUT_SQL | Échec SET LOCAL lock_timeout (PostgreSQL) : %1 |
| -30098 | ERR_TXN_INIT_SQL | La transaction SQL n'a pu être initialisée. Afin d'assurer l'intégrité de la base de données votre action a été annulée. |
| -30097 | ERR_TXN_COMMIT_SQL | Échec COMMIT (PostgreSQL) : %1 |
| -30096 | ERR_TXN_COMMIT_ECHEC | La transaction SQL n'a pu être validée. |
| -30095 | ERR_TXN_ROLLBACK_SQL | Échec ROLLBACK (PostgreSQL) : %1 |
| -30094 | ERR_TXN_ROLLBACK_ECHEC | La transaction SQL n'a pu être annulée. |
| -30093 | ERR_TXN_INACTIVE | Aucune transaction SQL n'est actuellement en cours. |
📋 Codes mth_API_Call (flux API-first) — ERR_API_CALL_*
| Code | Constante | Description technique | Message utilisateur (pub_GetMessage) |
| -40099 | ERR_API_CALL_URL_VIDE | mth_API_Call : m_sAPIUrl non renseignée | L'URL de l'API (m_sAPIUrl) n'est pas renseignée. Configurer ST_ORM_Config.sAPIUrl lors de l'initialisation. |
| -40098 | ERR_API_CALL_SERIALISATION | mth_API_Call : erreur sérialisation JSON — %1 | Erreur lors de la sérialisation de l'objet en JSON : %1 |
| -40097 | ERR_API_CALL_ENVOI | mth_API_Call : erreur envoi HTTP — %1 | Erreur lors de l'envoi de la requête HTTP à l'API : %1 |
| -40096 | ERR_API_CALL_HTTP | mth_API_Call : réponse HTTP %1 — %2 | L'API a répondu avec le code HTTP %1 : %2 |
| -40095 | ERR_API_CALL_MODE_API | mth_API_Call : appel refusé — le composant s'exécute côté API (m_bModeAPI = Vrai), cette procédure n'a de sens que côté applicatif | mth_API_Call() ne peut pas être appelée côté API (m_bModeAPI = Vrai). Cette procédure n'a de sens que côté applicatif. |
// Récupérer un message avec substitution de paramètres
sMessage = xFrameWork_CSHX2_Error.Singleton().pub_GetMessage(ERR_ORM_LOCK_INTROUVABLE, nID, sTable)
// → "Enregistrement introuvable (ID=42, table=articles)"
// Tester un code spécifique
SI nErrorCode = ERR_ORM_SELECT_ENREG_VERROUILLE ALORS
// L'enregistrement est verrouillé par un autre poste
FIN
ℹ️ Utilisation des constantes
Toujours préférer les constantes nommées (ERR_ORM_SELECT_LOCK_INVALIDE)
aux valeurs numériques dans le code applicatif — plus lisibles et résistants aux
évolutions du registre. Les constantes sont déclarées dans xFrameWork_CSHX2_Constantes.wl.