Vous êtes sur la page 1sur 7

Spécialité : TS Base de données

Module : Delphi Mono Poste

Thème : les requêtes sous Delphi (Adoquery)

SQL c’est quoi ?


L’abréviation SQL signifie StructuredQueryLanguage c’est à dire « langage structuré de
requête ». C’est un langage standard utilisé pour construire des requêtes et pour accéder aux
systèmes de bases de données de différents types. La plupart des langages qui mettent en jeu
les bases de données intègrent le SQL pour permettre une manipulation efficace des données.

1) Le composant AdoQuery:
a) Définition : Le composant AdoQuery (palette Ado) permet d’effectuer une sélection sur
une base de données en utilisant les requêtes SQL
b) Propriétés principales:
Propriété Description
Connection Nom de la base de données interrogée
SQL La requête SQL
Parameters Paramètres de la requête
Active Exécute ou non la requête

Remarque:
La propriété SQL du composant Adotable permet de conserver la requête SQL.
Elle peut être modifiée par l’inspecteur d’objet ou par code.
Par inspecteur d’objet :

Par code:

Adoquery1 . SQL . clear; // initialise le contenu de la propriété SQL


Adoquery1 .SQL. Add(' Requête ’ );
Adoquery1 . Active:=True; // ou Adoquery1 . Open ;

1
Exemple01:
On veut afficher la liste des Filles de la table Stagiaire de la base de données ‘scolarité.accdb’
E ta p es:
1. Créer une nouvelle fiche avec les composants suivants :

2. Modifier les propriétés des composants comme suit :

Palette Composant Propriété Valeur


Adoconnection1 ConnectionString D:\...\scolarité.accdb
ADO
AdoQuery1 Connection Adoconnection1
… Select * From stagiaire
SQL
Where Sexe=’F’

Active True

AccesBD Datasource1 Dataset Adoquery1


Dbgrid1 Datasource Datasource1
ControleBD
Dbnavigator1 Datasource Datasource1
3. Le résultat :

4. Modifier la requête dans la propriété SQL du composant Adoquery1 pour :


 Afficher les sections en mode Apprentissage
 Afficher les sections ouvertes en Février 2019
2
Exercice01:
Réaliser l’application suivante, qui permet d’affecter la valeur de la propriété SQL par code :

4. Requête avec paramètres (requête dynamique):


Une requête paramétrée ou dite dynamique est une requête qui utilise un critère variable de sélection
; c'est-à-dire qu’elle utilise un paramètre (une variable) dans la partie Where.
Syntaxe:

Select champs1,champs2, … from table1


Where champ= : Nom_paramètre

Remarque:
- Les deux points qui précèdent le nom de paramètre indiquent que c’est un paramètre.
Le passage des valeurs de paramètres:
Le passage des valeurs de paramètres de la requête s’effectue pendant l’exécution, après un événement
(clic sur un Bouton, changement du contenu d’un Edit, sélection d’un élément dans un Combobox,…
etc). Dans l’événement approprié, on écrit le code comme suit :

AdoQuery1.close ;
AdoQuery1.parameters.parambyname('Nom_param1').value:= valeur1
AdoQuery1.parameters.parambyname('Nom_param2').value:= valeur2 Passage des valeurs
aux paramètres
…………………………………………………………………… :=………..
AdoQuery1.parameters.parambyname('Nom_paramN').value:= valeurN
AdoQuery1.active:=true; {Exécuter la requête}

3
Exemple:
On veut afficher la liste des Sec ti o n s selon la valeur de M o d e que l ’ utilisateur
sélectionne dans un C o mb o b o x , comme suit:

Donc on utilise une variable C, qui contiendra à chaque fois une valeur différente de Mode
E ta p es :
1. Ecrire la requête dans la propriété SQL d’Adoquery1 comme suit:

SQL : Select * From Section


Where mode = :C

2. Déterminer le type de paramètre (C) : Le paramètre doit avoir un type compatible au


type du champ utilisé dans la comparaison. On donne un type au paramètre par la propriété
Parameters d’AdoQuery comme suit:

3. Passage de la valeur de paramètre (C): dans la propriété Items de Combobox1 on écrit les
valeurs : Apprentissage, Résidentiel, Passerelle. Et dans l’événement Onchange de Combobox1,

AdoQuery1.close ; on écrit :
AdoQuery1.parameters.parambyname('C').value:=combobox1.text;
Exercice02: AdoQuery1.active:=true;
1. Créer une nouvelle fiche ‘Requête dynamique’ dans le projet Requetes.dpr
2. En utilisant ‘Adoquery’, Afficher les stagiaires dont date de naissance est entre date1
et date2saisies dans Edit1 et Edit2

4
4-Requêtes contenant des champs calculés:
On peut introduire un champ calculé dans une requête en le mentionnant dans la partie select avec
les champs fixes. Et cela en donnant le nom du champ précédé de la formule qui le calcule.
Syntaxe:

Select champ1,champ2,.., (Formule de calcul) As Le nom_de_champ_calculé From table1

Remarque:
Le champ calculé va app araitre dans le D b G ri d seulement, il n ’ est pas stocké dans la base de
données.
Exemple01:
On veut calculer Montant de chaque produit à savoir sa quantité en stock et son prix unitaire :
Etapes :
1) Dans la propriété SQL d’Adoquery1 écrire la requête suivante :

Select Num_Prod, désignation, Qt_stock, prix_unit, (Qt_stock * prix_unit) as Montant From produits

Le nom de champ calculé


Formule de calcul
2) Mettre la propriété Active d’Adoquery1 à true

5
Exercice:
En utilisant un composant Adoquery, calculer le Montant
Total Montant_Tota=∑ Montant

Vous aimerez peut-être aussi