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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| procedure TForm1.bFiltreClick(Sender: TObject);
var
chaine_sql : string; // pour stocker la chaine SQL
jj, mm, aa : word; // variables servant aux stockages de l'année, le mois et le jour
d_debut, d_fin : TDate; // date début et date fin
taTable, tonChamp : string; // Table et champ invoqués
begin
// ici le nom de la table
taTable := 'employee';
// ici le champ de type date
tonChamp := 'HireDate';
// la chaine SQL
chaine_sql := 'SELECT * '
+ 'FROM ' + taTable + ' '
+ 'WHERE ' + tonChamp + '>=:vAnneeDebut AND ' + tonChamp + ' <=:vAnneeFin';
// fermer le query
query1.Close;
// effacer l'ancien contenu
query1.SQL.Clear;
// affecter la chaine SQL
query1.SQL.Text := chaine_sql;
// décoder la date pour obtenir l'année
DecodeDate(DateTimePicker1.Date, aa, mm, jj);
// construire la date début
d_debut := EncodeDate(aa, 01, 01);
// construire la date fin
d_fin := EncodeDate(aa, 12, 31);
// affeter aux deux paramètres comme indiquer dans la chaine SQL
query1.ParamByName('vAnneeDebut').AsDate := d_debut;
query1.ParamByName('vAnneeFin').AsDate := d_fin;
// ouvrir la table
query1.Open;
// affichage du résultat et fin...........
ShowMessage(Format('%d enregistrement(s) trouvé(s)', [query1.RecordCount]));
end; |
Partager