Bonjour
Dans une boucle While j exécute une requête sur une date, si le nombre de résultat est 0 alors je fais un goto vers une partie du code qui ajoute un jour à la date recherchée.
Selon ma logique cela fonctionnerait mais le compilateur n est pas du même avis que moi.
Je précise que j utilise GOTO parce que je débute totalement en Delphi et que j'ai le souvenir du basic amstrad et que depuis cette date je n ai jamais essayé de programmer...
J ai le code suivant :A la compilation il affiche le message d erreur suivant :Code:
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 with form1.qry do begin while iTemp < 1 do begin Req := 'ma requete contenant Jour_Cherche'; sql.clear(); sql.Add(Req); try Open(); if RowsAffected = 0 then begin goto SuiteBoucle; end; sTemp := fieldbyname('Ladate').AsString; except result := false; exit; end; SuiteBoucle: Jour_Cherche := incday(Jour_Cherche, 1); inc(iTemp); end; End;
'GOTO SuiteBoucle' conduit dans ou hors d'une instruction TRY, ou hors d'une instruction FOR-IN dont l'énumérateur a un destructeur
Si je comprends bien dans mon cas précisément, cela fait sortir de la boucle ? Alors comment conserver un goto dans une boucle while ?
Donc ma question est la suivante :
Comment procéder en sachant que je fais une suite de requêtes du même type et que chaque fois que le résultat est nul je souhaite ne pas exécuter les requêtes suivantes.
Je pourrais mettre un boolean et le tester à chaque nouvelle requête mais j essaie d'apprendre à coder proprement et je trouve cette façon de procéder plus tôt 'simpliste' alors que le goto me donnait l impression d un code plus propre.
merci de vos conseils