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
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
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%';
bjr
je veux selectionner les enregistrements qui contient seulement 3 caractéres comment programmer ca avec delphi.
Bonjour,
Sans le type de SGBD (voire la description de la table) comment répondre ?
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;
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part Query1.ExecSQL;
-une date déclarée en string dans une table c'est vraiment
-marrant votre code en compte 4je veux selectionner les enregistrements qui contient seulement 3 caractéres
[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
[Fin Edit]
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;
- et merci d'utiliser les balises de code pour isoler le code du texte (bouton #)
bon jour
dans paradox utiliseez le filtre pour eviter tout ces teste
votre code sera comme çaUtilisez 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'
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;
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager