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 un enregistrement qui contient 3 caractères


Sujet :

Bases de données Delphi

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2013
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 10
    Points : 7
    Points
    7
    Par défaut recherche un enregistrement qui contient 3 caractères
    bonjour
    je veux veux chercher dans ma table tout les enregistrement d'un champs qui contient 3 caractères le type de champs est string.
    merci d'avance

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 81
    Points : 29
    Points
    29
    Par défaut
    Utilise Like

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT supplier_name
    FROM suppliers
    WHERE supplier_name LIKE '%bob%';

  3. #3
    Futur Membre du Club
    Inscrit en
    Décembre 2013
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    bjr
    je veux selectionner les enregistrements qui contient seulement 3 caractéres comment programmer ca avec delphi.

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    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 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Sans le type de SGBD (voire la description de la table) comment répondre ?
    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
    Futur Membre du Club
    Inscrit en
    Décembre 2013
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    j'utilise paradox
    par exemple pour trouver les enregistrement qui commence par 4 zéro j'ai fait le code suivant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    begin 
    Table1.First; //On place le curseur au debut (1er enregistrement)
    while not Table1.Eof do // tant qu'on arrive pas a la fin du tableau 
    begin 
      if copy(Table1.FieldValues['DATENAISS'],1,4)='0000'  then
      begin
        Table1.Edit;
          Table1.FieldByName('DATENAISS').Value:='00001962';
        Table1.Post; // Enregistre les modif 
      end; 
      Table1.Next; // On passe a l'enregistrement suivant 
    end; 
    end;

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    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 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    pourquoi ne pas passer par un SQL ?

    Paradox n'a pas la clause STARTING WITH

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM NOMTABLE WHERE DATENAISS STARTING WITH '0000'

    mais a la clause LIKE

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM NOMTABLE WHERE DATENAISS LIKE '0000%'

    ou encore avec la fonction SUBSTRING
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM NOMTABLE WHERE SUBSTRING(DATENAISS FROM 1 FOR 4)='0000'


    pour faire la même chose que votre code j'aurais utilisé le SQL suivant
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE NOMTABLE SET DATENAISS='00001962' WHERE DATENAISS LIKE '0000%'

    avec une seule instruction Delphi
    maintenant , quelques remarques
    -une date déclarée en string dans une table c'est vraiment
    je veux selectionner les enregistrements qui contient seulement 3 caractéres
    -marrant votre code en compte 4
    [Edit] maintenant si c'est réellement ce que vous vouliez , Paradox n'a pas de fonction LENGTH mais il est possible de contourner de cette manière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // 3 car ou moins 
    SELECT * FROM NOMTABLE WHERE SUBSTRING(DATENAISS FROM 1 FOR 3)=DATENAISS;
    // uniquement 3 car
    SELECT * FROM NOMTABLE WHERE SUBSTRING(DATENAISS FROM 1 FOR 3)=DATENAISS AND SUBSTRING(DATENAISS FROM 1 FOR 2)<>DATENAISS AND SUBSTRING(DATENAISS FROM 1 FOR 1)<>DATENAISS;
    [Fin Edit]
    - et merci d'utiliser les balises de code pour isoler le code du texte (bouton #)
    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

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2012
    Messages : 111
    Points : 171
    Points
    171
    Par défaut
    bon jour
    dans paradox utiliseez le filtre pour eviter tout ces teste

    Utilisez Filter pour spécifier un filtre d'ensemble de données. Quand le filtrage est appliqué à un ensemble de données, seuls les enregistrements vérifiant les conditions du filtre sont disponibles dans une application. Filter décrit la condition de filtrage. Par exemple, le filtre suivant n'affiche que les enregistrements dont le champ State contient 'CA' ou 'MA':
    State = 'CA' or State = 'MA'
    votre code sera comme ça

    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
    16
    17
    begin 
     
    table1.Filter := ' DATENAISS = ''0000*''' //affiché que les 'datenais' commencent par 0000
    table1.Filtered := true;                        // activer le filtre
     
    Table1.First; //On place le curseur au debut (1er enregistrement)
    while not Table1.Eof do // tant qu'on arrive pas a la fin du tableau 
    begin 
        // if copy(Table1.FieldValues['DATENAISS'],1,4)='0000'  then
        // begin
        Table1.Edit;
          Table1.FieldByName('DATENAISS').Value:='00001962';
        Table1.Post; // Enregistre les modif  
        //  end; 
      Table1.Next; // On passe a l'enregistrement suivant 
    end; 
    end;
    A +

Discussions similaires

  1. Copier une ligne qui contient un caractère particulier
    Par manudibongo dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/09/2014, 17h00
  2. Réponses: 1
    Dernier message: 13/07/2011, 12h38
  3. Réponses: 2
    Dernier message: 28/08/2009, 13h30
  4. rechercher les enregistrements dont un champ contient une chaine
    Par faabriice dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/06/2008, 13h58
  5. [RegEx] Je recherche une chaîne qui ne contient pas une certaine chaîne
    Par johann51 dans le forum Langage
    Réponses: 5
    Dernier message: 19/03/2008, 16h42

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