Bonjour à tous,

J'ai Delphi 2005 et Interbase. J'utilise les composants de la palette Interbase.

J'effectue la requête suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
      With IBQueryPrc do
      begin
             ...
          SQL.Clear;
          SQL.Add('SELECT SUM(TEMPS_SLRMETIER) AS NBRE');
          SQL.Add('FROM SLRMETIER');
          SQL.Add('WHERE   ID_SLR    = :ID_SLR');
          SQL.Add('AND     ID_METIER    = :ID_METIER');
// Paramètres en entrée
          ParamByName('ID_SLR').AsInteger := IdSlr;
          ParamByName('ID_METIER').AsInteger := IdMet;
          Open;
          if IsEmpty then ShowMessage('Is empty') else
                ShowMessage('Is no Empty');
La table SLRMETIER ne contient AUCUN enregistrement et pourtant je passe invariablement dans la branche ELSE : isEmpty est toujours faux.

Est-ce normal ?

N.B : j'ai modifié la requête en effectuant une boucle :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
         Open;
          while not eof do
          begin
            N:= N+1;
            next;
          end;
La table ne contenant toujours aucun enregistrement, N prend la valeur 1 à la sortie du traitement.

EOF ne devrait-il pas être à "True" juste après l'Open ?

Là, je ne comprends pas... Merci de vos éclaircissements.