Salut,
Moi, ce qui m'inquiète particulièrement, c'est que tu semble vouloir obtenir la liste des requêtes effectivement effectuées, avec les noms de tables, de champs et les valeurs effectivement utilisées.
De mon avis personnel, il n'y a, a priori qu'en exécutant réellement l'application qu'il sera possible d'obtenir une liste exhaustive de ces requêtes.
La raison est toute simple : de nombreuses valeurs (essentiellement celles qui interviennent dans les clauses WHERE, mais, peut etre aussi certaines valeurs de champs ou de noms de table) ont de grandes chances d'être issues de données dynamiques (résultat d'autres requêtes, données introduites par l'utilisateur, ...)
L'analyse statique du code risque de n'en arriver qu'à te donner un résultat proche de
SELECT var_champs FROM var_table WHERE var_condition
ce qui, il faut l'avouer, risque de n'avoir qu'un intérêt relativement restreint parce que cela implique qu'il faudra alors arriver à déterminer où sont définies ces var_champs, var_table et var_conditon afin de se faire une idée de ce à quoi cela peut bien correspondre
Et comme la définition de ces variables risque d'être dynamique, tu risques encore de te retrouver dans une situation dans laquelle var_condition (par exemple) est en réalité de résultat d'une autre requête dont il t'est impossible de déterminer la teneur de manière statique.
J'ai donc l'impression que la meilleure manière de procéder est, sans doute, de s'orienter vers un système de logging des requêtes réellement utilisées et de faire tourner l'application "suffisamment longtemps" que pour obtenir un panel de requêtes "aussi exhaustif que possible".
A partir de là, il serait alors possible d'envisager de créer "quelque chose" qui soit susceptible de parser les différentes requête et de t'afficher un résultat utilisable
Envoyé par
Matthieu Brucher
Ce n'est pas mon avis. Le parsing de fichiers C++ est extrêmement difficile. Ce n'est pas un boulot pour un débutant.
Je ne dis pas qu'il ne faut pas écrire des parties soi-même (si tu regardes bien la discussion et si tu connais un peu les outils dont on parle, il y a encore beaucoup de boulot... et je ne pense pas qu'il soit débutant), mais non, dans le monde de l'entreprise, on ne réinvente pas la roue, ou plutôt on ne devrait pas. Il y a assez de code comme ça à écrire et surtout à maintenir pour ne pas vouloir en ajouter en plus inutilement.
+1
Partager