Problème au niveau requête SQL

4.0
Problème au niveau requête SQL
0
Tags: #<Tag:0x00007fc3c6d86fd0>
#1

Bonjour,

J’ai un problème au niveau d’une requête SQL, je n’arrive pas a afficher les deux champs “id_per,nom_per”, m’affiche seulement “id_per” et un seul enregistrement.

La requête est la suivante :
var sql = “Select id_per,nom_per from personne where nom_per LIKE ‘Business’”;

0 Likes

(David AZOULAY) #2

Je requalifie en “Support” car si les requêtes SQL ne marchaient pas dans Simplicité on le saurait ;-)

Merci de me dire dans quel contexte vous écrivez ce SQL pour que je comprenne ce que vous faites exactement. A priori on parle de code Rhino, si oui merci de copier coller ce code pour que je voie quelles APIs vous utilisez.

Plus généralement je suis toujours très dubitatif sur l’opportunité d’écrire du SQL vs l’utilisation des APIs search/select. Bref quel est votre besoin suffisamment spécifique qui justifie d’écrire du SQL ?

0 Likes

#3

Effectivement, il s’agit du code Rhino

0 Likes

(David AZOULAY) #4

L’API simpleQuery n’est pas adaptée à ce type de requête. C’est pour des requêtes simples (au sens où elles renvoient 1 seule valeur). Dans votre cas il faudrait utiliser query cf. https://docs.simplicite.io/4.0/javadoc/com/simplicite/util/Grant.html#query-java.lang.String-

Cela dit je ne comprends pas pourquoi vous faites du SQL pour ça. En effet faire du SQL est à réserver aux cas vraiment particuliers qui ne doivent/peuvent pas être adressés via les API “logiques” Simplicite. Sinon faire du SQL est en général un anti pattern.

Quel est votre besoin ? Je pose la question car j’ai l’impression qu’on pourrait faire plus simple et plus aligné sur la logique générqiue de Simplicité.

0 Likes

(David AZOULAY) #5

Je pense que cette methode est sans doute plus adaptée à votre besoin (et elle est thread safe ce qui n’est pas le cas de votre code) https://docs.simplicite.io/4.0/javadoc/com/simplicite/util/Grant.html#getNextIdForColumn-java.lang.String-java.lang.String-

Il existe d’autres APIs du même genre

La vraie question est: est-ce que votre attribut "ID "a un intéret métier ? En effet dans Simplicité un row ID technique unique est géré de manière transparente par la plateforme ce qui rend inutile un attribut métier ID sauf si ça correspond à un vrai identifiant métier avec une vraie sémantique métier. Avez vous bien intégré la notion de “clé fonctionnelle” des objets métier ?

0 Likes

#6

J’ai auparavant des données enregistrer dans la table perimetre, mon besoin est le suivant:

  • Je souhaite ajouter un nouvel enregistrement, avant de valider la donnée on doit vérifier est-ce que le champ “nom_perimetre”,
    Exemple : la valeur saisie dans “nom_perimetre” est : ’ Business’, avant je dois vérifier est-ce que la valeur ‘Business’ déjà existe, si c’est le cas je récupère la valeur du champ “nom” est je l’insert dans le champ " définition " .

Je souhaite que j’ai été claire dans mes explications, n’hésitez pas si vous avez des doutes .

0 Likes

(David AZOULAY) #7

Désolé je ne comprends pas votre besoin métier…

S’agit-t-il d’un contrôle d’unicité de l’attribut “nom” ? Ou est-ce quelque chose de plus compliqué ?

0 Likes