Retrait des quotes dans les requetes sql

Bonjour,

J’ai l’impression que les quotes dans les requêtes par code sont retirées par le socle.

Exemple :

Code dans un objet select :

@Override
public void postLoad() {

	String sql = "select a.name from a where a.statut = 'PI' ";
	setDBName("("+sql+")");
}

dans les logs j’ai un :

Erreur SQL requête: jdbc/simplicite: select a.name from a where a.statut = PI

donc la requête ne fonctionne pas : Error: Unknown column ‘PI’ in ‘where clause’

Version :

  • Simplicité version 5.2.42
  • Built on 2023-06-22 14:55

Nous avons ajouté de nombreux “garde fous” contre les injections SQL qui doublent les quotes mais pas qui les suppriment. A priori le setTable (alias setDBName) ne change pas ce qu’on lui passe…

Je vais faire faire des tests car j’avoue ne jamais avoir fait ce que tu décris = un objet select avec requête construite dynamiquement dans le postLoad

D’ailleurs pour ce faire j’écrirais plutôt:

setName(TYPE_QUERY);
setTable("select a.name from a where a.statut = 'PI'");

Sans parenthesage additionnel.

Bonjour,

Vous confondez surement nom de l’objet, table et requete ?

setTable("select")

La requête SQL est à mettre dans la search spec
setSearchSpec("select ...")

Ah oui, effectivement, j’ai écrit n’importe quoi, désolé… (NB: j’ai quand même dit que je n’avais jamais fait une chose pareille :wink:

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.