Développement d’un requêteur – Dossier réalisé par Julien Dahan
- Fin de première année à l’école d’ingénieur 3IL (année 2003) -

 

1) Principe et intérêt du requêteur

 

Le principe du requêteur est d’offrir au client la possibilité d’effectuer des recherches directes sur son patrimoine sans passer par une consultation de données via la navigation sur son Internet.
C’est donc un module à part entière qui vient se greffer sur le site et qui utilise la même base de données.

 

Le requêteur permet - outre l’affichage d’informations spécifiques résultant des critères entrés par l’utilisateur - de localiser géographiquement l’objet sélectionné sur un plan SVG.

 

Le requêteur a été développé sur 3 pages ASP : « moteur.asp », « requeteur.asp », et « resultat.asp ». Il a été écrit pour environ 70% en langage Javascript, le reste étant fait en ASP.

 

Interprété par le navigateur, le Javascript est un langage qui permet le traitement de données côté client. Son intérêt réside dans la rapidité du temps d’exécution, et dans les possibilités offertes dans la manipulation des informations reçues. Le Javascript n’interagit pas avec le serveur ce qui permet d’éviter les temps d’attente significatifs lors de l’envoi d’informations vers celui-ci.

 

A son opposé, l’ASP - qui est aussi un langage interprété - a été utilisé pour l’envoi de données des postes clients vers le serveur et pour les connexions à la base de données Access. A titre d’exemple, l’utilisation des objets Session des Active Server Pages m’a permis de masquer des variables passées en paramètres d’une page du requêteur à une autre.

 

L’intérêt du requêteur est de permettre à l’utilisateur de construire de bout en bout - de par les options qu’il choisit - sa propre requête SQL; celle-ci est ensuite exécutée pour afficher des données spécifiques contenues dans la base Access.

 

Comme je vais le détailler dans la suite du dossier, le requêteur se décompose en 3 pages : la page d’accès « moteur.asp », « requeteur.asp » qui permet à l’utilisateur de rentrer ses critères de recherche, et enfin « resultat.asp » affiche les réponses obtenues.

 

 

2) Structure du requêteur

 

Cette partie de l’étude décrit de manière plus détaillée la structure des trois pages développées pour réaliser le requêteur.

 

Moteur.asp

 

La première page sur laquelle arrive l’utilisateur est « moteur.asp ». Cette page permet à l’utilisateur de sélectionner un thème et un objet sur lequel il va effectuer la recherche.

Thèmes et objets sont des éléments stockés dans la base Access.

 

A l’appel de cette page, les champs de la base de données contenant ces informations sont récupérés et stockés dans des tableaux crées dynamiquement en Javascript. Ce type de traitement permet d’afficher immédiatement les objets associés à un thème sans passer par des phases de connexion intermédiaires avec le serveur de données.

 

L’utilisateur effectue donc sur cette page un premier choix sur la requête à générer, puis le soumet en cliquant sur un bouton de validation. Cela se traduit par la création d’un objet Session en ASP contenant le nom de la table sélectionnée, et par l’ouverture de la page « requeteur.asp ».

 

L’impression d’écran ci-dessous présente les informations auxquelles l’utilisateur a accès lorsque il exécute le requêteur.

 

 

L’utilisateur choisit sur cette page un thème et un objet sur lequel va se porter sa recherche. Il valide ensuite son choix.

 

 

Requeteur.asp

 

Cette page prend en paramètre le nom de la table choisi par l’utilisateur et affiche en retour les informations lui permettant d’effectuer sa requête.

Ces données apparaissent dans une liste de champs où l’on peut effectuer une recherche grâce à la zone de texte associée. Le requêteur permet également à l’utilisateur de faire une sélection sur les informations à afficher par la présence de boutons « checkbox ».

Réalisée en Javascript, cette page permet de générer de toute part une requête SQL en fonction des choix effectués par l’utilisateur.

 

Exemple 1 : La sélection des checkboxes « nom » et « prenom » permet de délimiter la requête à : SELECT nom, prenom FROM matable.

 

Les données entrées par l’utilisateur dans les zones de textes permettent de générer les clauses de la requête SQL :

 

Exemple 2 : si l’utilisateur remplit le champ « id » avec la donnée « 1286a », la requête générée dynamiquement devient alors : SELECT nom, prenom FROM matable WHERE id=’1286a‘.

 

La requête SQL qui a été générée dans une chaîne Javascript est stockée dans un objet session ASP afin d’être traitée dans la page « resultat.asp ». Le requêteur permet donc d’afficher des résultats bien spécifiques en fonction des critères entrés par l’utilisateur.

 

 

Liste des critères sur lesquels l’utilisateur peut effectuer sa recherche, et sélection de paramètres. Dans le cas présent, le thème et l’objet « Personnel » ont été sélectionnés.

 

 

Resultat.asp

 

Cette page met en forme les résultats correspondants aux critères entrés par l’utilisateur et permet d’ordonner ces informations grâce aux fonctions de tri écrites en Javascript.

 

Les données de la requête SQL (générée sur la page précédente) sont stockées dans des tableaux dynamiques Javascript. Les résultats sont présentés dans un tableau de taille variable (selon le nombre de checkboxes sélectionnées sur la page « requeteur.asp ») et l’utilisateur peut effectuer un tri sur celles-ci en cliquant sur le nom de chaque colonne du tableau.

 

La méthode utilisée ici est celle du « Tri à bulles » que nous avons pu mettre en œuvre lors des cours d’algorithmique et de langage C en première année. Dans ce cas précis l’algorithme de tri doit prendre en paramètre un nombre de tableaux variable pour pouvoir les ordonner entre eux. Les résultats de chaque colonne peuvent ainsi être classés par ordre ascendant.

 

Ci-dessous, une impression d’écran présentant les résultats obtenus par la requête : SELECT nom, prenom FROM matable WHERE id=’1286a‘ générée sur la page « requeteur.asp ».

 

 

Le tableau affiche les résultats de la requête effectuée par l’utilisateur.

Le tri est possible en cliquant sur l’intitulé de chaque colonne.

 

 

3) Conclusion

 

A l’heure actuelle, le requêteur est opérationnel et propose des fonctions de recherche et de tri performantes.

 

Travailler sur ce projet m’a beaucoup apporté : d’une part, cela m’a permis de perfectionner mes compétences en programmation des Active Server Pages. D’autre part, j’ai acquis de solides connaissances en Javascript, alors que je n’avais jamais pratiqué ce langage auparavant.

 

J’ai également pu renforcer ma pratique du langage SQL puisque l’objectif du requêteur est, je le rappelle, de créer des requêtes SQL dynamiques en fonction des choix de l’utilisateur. 

 

 

Intégration du requêteur dans un site Internet.