J'ai une application Delphi 7 qui effectue un grand nombre de traitements sur une base MySQL.
Ces traitements sont effectués une fois par mois avant de générer des états (Rave).
Dans un premier temps, tous ces traitements étaient dans un fichier texte et exécutés en dehors de l'application. Le problème c est que les utilisateurs aimaient "améliorer" ce fichier, causant parfois des erreurs (en fait souvent).
J'ai donc décidé de créer une unité dans laquelle j'ai mis toutes ces commandes sous forme de string et une petite fonction qui lance toutes ces commandes.
Une description shématique de ce qui se passe :
La fonction avec le case of est on ne peut plus simple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 For compteur := 1 to max do begin Database.execute(fonction_donnant_SQL(compteur); Compteur := compteur +1; end;
J'ai trouvé quelques intérêts au case of : le principal est que je peux m'en servir pour afficher une progression du traitement dans l'application et lorsque je lève une exception, je peux donner le N° du case à l'utilisateur pour que je puisse l'aider par téléphonne (mes utilisateurs sont dispatchés un peu partout en France).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 function fonction_donnant_SQL(compteur : integer) : widestring; begin case compteur of 1 : fonction_donnant_SQL := 'update table set colonne = colonne / 2'; 2 : etc. end;
Par contre, j'ai environ 170 cases (répartis entre divers cases par groupes de 50) et lorsque je rajoute une requette qui doit être exécutée entre la 5ème et la 6 eme, ben pour l'instant, je dois retaper tous les numéros qui suivent.
Ma question est donc la suivante : auriez vous une idée pour gérer ca en Delphi, en gardant la gestion des requettes par N°, sans que ces requettes soient modifiables / visibles par les utilisateurs et me permettant de rajouter une requette au milieu sans modifier le reste (les numéros se mettent à jour tout seul).
J'ai pensé me fabriquer une mini appli/BDD qui me génèrerait un fichier texte à copier coler sur le form, mais je ne le ferais qu'en dernier recours.
Je préfère d'abord vous demander si vous n'avez pas une meilleure idée et ou s'il n'existe pas un objet (fournit avec delphi : mon chef ne veut pas que j'utilise des modules estérieurs) qui pourrait m'aider.
J'espère ne pas avoir été trop confu.
Je vais m'absenter durant 2 ou 3 jours pendant lesquels je vais continuer à chercher de mon côté. Si vous répondez et ne voyez pas de réponses d'ici mercredi, ce n'est pas que je vous ignore. Je répondrai à mon retour.
Merci d'avance,
Greg
Partager