Lancer des requêtes SQL dans Sage X3 avec la fonction Execsql

Sage X3 (Enterprise Management) offre une méthode native pour exécuter des requêtes SQL via la fonction Execsql. Cette fonction permet d’exécuter des commandes SQL sans retour de données, contrairement à For…From…Sql qui récupère des colonnes.

🎯 À quoi sert Execsql ?

Elle est particulièrement utile pour :

  • Exécuter des instructions UPDATE
  • Accorder des droits avec GRANT
  • Effectuer des opérations sans réponse attendue

🧪 Syntaxe

Execsql From type_base Sql sql_exp
  • type_base : caractère indiquant le type de base de données
  • sql_exp : chaîne de caractères ou tableau de chaînes contenant la requête SQL

🔧 Exemple pratique

YSQUERY(0)="Update "+nomap+".YTEMP set YFLAG_0 = 2 where YITMREF_0='ABC'"
YSQUERY(1)=" AND YSTOFCY_0='XYZ'"

Execsql From type_base Sql YSQUERY(0)

➡️ Définir le type de base

Local Char BASE(1)
Case [F:ADS]TYPDBA
  When 1 : BASE = "3"   # Oracle
  When 2 : BASE = "5"   # SQL Server
  When 3 : BASE = "2"
  When 4 : BASE = "4"
Endcase

Valeurs possibles de type_base :

  • "o", "O", "3" → Oracle
  • "s", "S", "5" → SQL Server

Il est possible de découper une requête en plusieurs parties via un tableau (grid) de 255 éléments max.

✅ Conclusion

Grâce à Execsql, les développeurs peuvent facilement exécuter des commandes SQL dans Sage X3, simplifiant la gestion des données sans alourdir les scripts avec des résultats inutiles.