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

Bases de données Delphi Discussion :

Recherche dans un ClientDataSet


Sujet :

Bases de données Delphi

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2011
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 33
    Points : 27
    Points
    27
    Par défaut Recherche dans un ClientDataSet
    Salut à tous.
    Le ClientDataSet est un ensemble de données en mémoire très pratique à manipuler. J'aimerais faire des recherches à l'intérieur de cet ensemble. Je sais qu'il existe des méthodes comme CDS.Locate, CDS.Lookup et autres FindKey, FindNext et autres FindNearest sur les index.

    Je cherche une méthode pour sélectionner un ou plusieurs enregistrements dans un CDS suivant une commande sur le modèle du LIKE ou du BETWEEN qu'on utilise dans les requêtes SQL.
    Le résultat serait une multiselection 'automatique' dans un DBGrid préalablement rempli avec un SELECT * FROM MaTable

    Est-ce possible ?

  2. #2
    Membre actif

    Inscrit en
    Mai 2010
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 401
    Points : 294
    Points
    294
    Par défaut
    tu peut utiliser txquery
    voire cette discussion.
    http://www.developpez.net/forums/d87...t-open-source/

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2011
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 33
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par aimer_Delphi Voir le message
    tu peut utiliser txquery
    Prometteur. Malheureusement plus maintenu et limité à XE4.

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    il me semble que Firedac (TFDLocalSQL) permet de le faire , mais à partir de quelle version est-ce disponible ?
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 491
    Points : 2 756
    Points
    2 756
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Tu peux ajouter une colonne (qui peut être cachée lorsque tu travailles avec par exemple une vue grille) et parser ton CDS pour alimenter cette colonne par true ou false

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    Voir ce que permet la propriété Filter
    Il y aussi OnFilterRecord
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Membre habitué
    Homme Profil pro
    Chef de projets
    Inscrit en
    Août 2008
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 127
    Points : 195
    Points
    195
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Voir ce que permet la propriété Filter
    Il y aussi OnFilterRecord
    J'ai déjà utilisé la solution proposée par ShaiLeTroll et je peux filtrer comme je souhaite mon DataSet.

    Voici un exemple où je souhaite avoir les lignes dont le nombre d'inscrits et compris entre 10 et 15.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
       Cds.Filter := ' [nbinscription] > 10  AND [nbinscription] < 15 ';
       Cds.Filtered := True;
    Pour désactiver ton filtre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
       Cds.Filter := '';
       Cds.Filtered := False;
    J'ai couplé un petit analyseur syntaxique à cette classe afin que l'utilisateur final requête d'une façon naturelle. Ainsi il m'indique le nom de la colonne l'opérateur et la valeur.
    Nom : Capture.PNG
Affichages : 389
Taille : 19,3 Ko
    Nom : Capture2.PNG
Affichages : 386
Taille : 18,5 Ko

Discussions similaires

  1. Problème de recherche dans une BD
    Par ledevelopeur dans le forum Bases de données
    Réponses: 5
    Dernier message: 28/04/2004, 09h49
  2. recherche dans un projet
    Par FreshVic dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 26/04/2004, 20h04
  3. [LG]rechercher dans un fichier texte
    Par BadFox dans le forum Langage
    Réponses: 11
    Dernier message: 01/12/2003, 15h57
  4. [BPW]Problème de recherche dans une boîte liste
    Par Alcatîz dans le forum Turbo Pascal
    Réponses: 14
    Dernier message: 05/07/2003, 15h10
  5. recherche dans un document xml via DOM
    Par ndoye_zaff dans le forum APIs
    Réponses: 5
    Dernier message: 11/06/2003, 14h44

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