IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

la technique la plus rapide pour rechercher dans les bases de données Firebird


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 182
    Par défaut la technique la plus rapide pour rechercher dans les bases de données Firebird
    salut j'ai utilise RAD Studio 10.3.1 et firebird 2.5
    Quelle est le code le plus rapide pour rechercher dans la base de données Firebird ??
    (Ce qui ne prend pas longtemps si la base de données contient des millions d'enregistrements)

    Est-ce le premier code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    with FDQuery1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('Select code_Emp from employee');
      Open;
    end;
     
    while not FDQuery1.Eof do
    begin
     if  (FDQuery1.Fields[0].AsString = Edit1.text ) then existe:=true;
     FDQuery1.Next;
    end;
    Est-ce le deuxième code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    with FDQuery1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('Select code_Emp from employee WHERE code_Emp='''+edit1.text+'''');
      Open;
    end;
    if FDQuery1.RecordCount > 0 then  existe:=true;
    Est-ce la methode locate ou FindKey Plus rapide que les deux codes précédent ????

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 635
    Billets dans le blog
    65
    Par défaut
    Bonsoir,

    les deux premiers codes sont à bannir de même que les méthodes locate ou Findkey qui demandent à ce que la table entière soit chargée.

    Le second code, utiliser une query est certainement mieux mais à retravailler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    with FDQuery1 do
    begin
      Close;
      SQL.Text:='Select code_Emp from employee WHERE code_Emp=:E'; // utilisez des requêtes paramétrées c'est une bonne habitude 
      ParamByName('E').asString:=Edit1.text;
      Open;
      Exists:=Not FieldByName('code_emp').isnull; 
    end;

  3. #3
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 182
    Par défaut
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. userforme pour ajouté ou rechercher dans une base de données
    Par saidram dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/04/2018, 16h46
  2. generateur de code java pour rechercher dans une base de donnees
    Par cdubet dans le forum EDI et Outils pour Java
    Réponses: 5
    Dernier message: 18/02/2017, 10h10
  3. Réponses: 9
    Dernier message: 08/02/2012, 18h40
  4. Réponses: 4
    Dernier message: 29/01/2010, 16h28
  5. Réponses: 1
    Dernier message: 21/10/2009, 17h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo