Bonjour,

Il y a un problème que je ne comprend pas bien. Je suis sous Delphi7 Entreprise.

J'ai une requête SQL :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
SQL.Text := 'SELECT * FROM "ENREG" WHERE (DateHeure>=:Params0) AND (DateHeure<=:Params1) AND '+
                '(ID_Enreg=:Params2)';
    Params[0].AsDateTime := StrToDateTime('01/01/1998 03:22:00');
    Params[1].AsDateTime := StrToDateTime('26/02/2003 23:59:00');
    Params[2].AsInteger  := 1;
    if not DM.IBTransaction.Active then DM.IBTransaction.StartTransaction;
    Prepare;
    Open;
Cette requête est exécutée instantannément : pas de problème.

Si je passe par des paramètres comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
DateFin := Now;
DateDebut := DateFin - 5;
SQL.Text := 'SELECT * FROM "ENREG" WHERE (DateHeure>=:Params0) AND (DateHeure<=:Params1) AND '+
                '(ID_Enreg=:Params2)';
    Params[0].AsDateTime := DateDebut;
    Params[1].AsDateTime := DateFin;
    Params[2].AsInteger  := 1;
    if not DM.IBTransaction.Active then DM.IBTransaction.StartTransaction;
    Prepare;
    Open;
Cette dernière requête met plus de 10 secondes à s'exécuter....
Je ne comprends pas bien ????

Merci de votre aide car je ne peux pas faire autrement que de passer par des paramètres...comment accélérer cette requête.
A savoir :
ID_Enreg est la clé primaire
DateHeure possède un index pour accélérer les tris.

--
Benoit