Bonjour à tous,
Dans mon programme, j'ai une requête SQL paramétrée où je dois substituer les bonnes valeurs. Par exemple, disons que ma requête est :
SELECT * FROM test WHERE var1=:valeurvar1 AND var2=:valeurvar2
Je dois substituer valeurvar1 et valeurvar2 par les valeurs correctes. Je possède une map (déjà constituée), qui me donne la valeur correspondante.
Je voudrais donc boucler sur l'ensemble des paramètres de la requête et assigner la bonne valeur venant de la map.
J'ai un début de code mais je n'arrive pas à aller plus loin, plus particulièrement je ne sais pas comment récupérer ce qui va me servir de clé dans ma map (à savoir valeurvar1, valeurvar2).
Voici mon code :
A l'intérieur du for, je veux donc assigner à la valeur du paramètre courant la valeur à substituer (via la fonction getVariableValue qui elle me retourne la valeur de la map).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 String __fastcall test::substitution(TADOConnection *cnn, String sSQL) { TADOQuery* query = new TADOQuery(NULL); query->Connection = cnn; query->SQL->Add(sSQL); for(int i = 0; i < query->Parameters->Count; ++i) { query->Parameters->Items[i]->Value = getVariableValue(query->Parameters->Items[i]->// ?); } query->Active = true; return query->Recordset; }
Aussi, j'ai mis String comme type de retour mais ma fonction doit en fait retourner un recordset. Est-ce que return query->Recordset; est correct, cela va-t-il bien retourner le recordset que la query va rapatrier une fois sa propriété Active passé à true ? Le type de la valeur de retour est Recordset alors ?
Voilà, c'est encore un peu flou pour moi, si quelqu'un peut m'éclairer.
Merci d'avance.
Partager