Bonjour à tous,

J'utilise C++ builder 5, je suis en cours de développement d'une application qui suite à un clic sur un bouton doit générer un code aléatoire sur 4 chiffres entre 1000 et 9999. Ensuite je dois tester l'éxistance de ce code dans ma table AccessVL ainsi que la valeur d'un champs. Celle ci est composée de :
-Code_Aleatoire(int)
-Entree_Effectuee(bool)
-Sortie_Effectuee(bool)

Une fois mon code généré, je dois effectuer une requête SQL sur ma table pour vérifier si le code éxiste déjà et si le champ Entree_Effectuee est bien à false, auquel cas je regénère un code. Le problème est que je ne sais pas comment exploiter le résultat de ma requête pour vérifier mes conditions.

Voici le code associé à mon bouton :
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
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
void __fastcall TfAppli::bpGenerationCodeClick(TObject *Sender)
{
//ouverture de la table
//dmProg contient tous les composants ADO
//tCodeAletoire type ADOTable
dmProg->tCodeAleatoire->Open();
 
//déclaration code alléatoire
int CodeAleatoire;
randomize();
 
//génération du code aleatoire
CodeAleatoire = random(9000) + 1000;
 
//vérification si le code existe déjà
//tQCodeAleatoire type ADOQuery
tQCodeAleatoire->Close();
tQCodeAleatoire->SQL->Clear();
//essai avec le code 1578 déjà créé dans la base
tQCodeAleatoire->SQL->Add("SELECT * FROM AccesVL WHERE Code_Aleatoire='1578'");
tQCodeAleatoire->Open();
 
if () 
//vérification du résultat de la requête (si code existe)
...
&& ()
//vérification du champs Entree_Effectuee
...
{
//nouveau code aléatoire
CodeAleatoire = random(9000) + 1000;
}
 
//message si ok
ShowMessage ("Le code Aléatoire à saisir est :" + String(CodeAleatoire) );
 
//enregistrement dans la table
dmProg->tCodeAleatoire->Append();
dmProg->tCodeAleatoire->FieldValues["Code_Aleatoire"]= CodeAleatoire;
dmProg->tCodeAleatoire->Post();
 
//fermeture de la table
dmProg->tCodeAleatoire->Close();
}
Merci par avance de vos réponses