Précédent   Forum des professionnels en informatique > Bases de données > Autres SGBD > Paradox
Paradox Forum d'entraide sur Paradox, et sur Borland Database Engine
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/09/2007, 10h58   #1
Nouveau Membre du Club
 
Inscription : mai 2004
Messages : 56
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 56
Points : 32
Points : 32
Par défaut Comparaison avec des accents

Bonjour,

voici mon problème sur une base Paradox :

j'ai un table MY_TABLE qui contient dans MY_COL des chaines de caractères avec des accents :
Code :
1
2
3
4
5
6
MY_TABLE : 
IDX      MY_COL
1         sélection
2         sélectionnée
3         test
....
je souhaite faire des comparaisons mais avec une valeur ne contenant pas d'accent, voici la requête actuellement utilisée :

Code :
SELECT * FROM MY_TABLE WHERE lower(MY_COL) LIKE lower('SELECTION%')
le pb c'est que cette requête me retourne aucun valeur puisque dans la table les infos ont des accents.

N'y-a-t'il pas un moyen (commande SQL) de faire cette comparaison sans tenir compte des accents en base ?

merci pour vos réponses.
Zugg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2007, 14h40   #2
Membre chevronné
 
Inscription : mars 2006
Messages : 615
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 615
Points : 682
Points : 682
Code :
SELECT * FROM MY_TABLE WHERE lower(MY_COL) LIKE lower('S_LECTION%')
ALWEBER est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2007, 15h59   #3
Nouveau Membre du Club
 
Inscription : mai 2004
Messages : 56
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 56
Points : 32
Points : 32
Merci ALWEBER,

mais le soucis c'est que le terme de comparaison (dans l'exemple "SELECTION") est tapé par l'utilisateur.

d'autre part, je ne sais pas à quel position il y a un accent dans le terme stocké en base de donnée.

Il n'existe pas un "replace" en paradox ou un "ILIKE" ?

pour faire qqch du style :

Code :
SELECT * FROM MY_TABLE WHERE REPLACE(lower(MY_COL), 'é,è,à....', 'e,e,a,...') LIKE lower('SELECTION%')
Zugg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2007, 16h15   #4
Membre chevronné
 
Inscription : mars 2006
Messages : 615
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 615
Points : 682
Points : 682
Peut tu me dire quel est la valeur du paramètre langage de table de la table interrogée ?
ALWEBER est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/09/2007, 18h23   #5
Nouveau Membre du Club
 
Inscription : mai 2004
Messages : 56
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 56
Points : 32
Points : 32
salut,

le langage de la table est : "Borland ENU Latin-1" apparemment.
Zugg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2007, 09h21   #6
Membre chevronné
 
Inscription : mars 2006
Messages : 615
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 615
Points : 682
Points : 682
Passes ta table en "Pdox ANSI Intl" dans ce cas plus de problèmes d'accent.
Si tu as un problème de perte d'accents lors du changement tu passes par un export/import txt
ALWEBER est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2007, 09h25   #7
Nouveau Membre du Club
 
Inscription : mai 2004
Messages : 56
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 56
Points : 32
Points : 32
Super merci, ça marche nickel.

Mais faut simplement que je fasse la comparaison en UPPER et plus en LOWER.

bon j'adapte mon code et hop plus de problème.

Merci !!
Zugg est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2007, 10h06   #8
Membre chevronné
 
Inscription : mars 2006
Messages : 615
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 615
Points : 682
Points : 682
POUR QUE UPPER ET LOWER PASSENT UTILISE "LIKE"
ALWEBER est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2007, 10h33   #9
Nouveau Membre du Club
 
Inscription : mai 2004
Messages : 56
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 56
Points : 32
Points : 32
Citation:
Envoyé par ALWEBER Voir le message
POUR QUE UPPER ET LOWER PASSENT UTILISE "LIKE"
je fais bien un LIKE mais, après quelques tests, si je fais par exemple :
Code :
SELECT * FROM MY_TABLE WHERE lower('sélectionné') LIKE lower('selection%')
ça ne retourne rien, par contre en faisant :

Code :
SELECT * FROM MY_TABLE WHERE upper('sélectionné') LIKE upper('selection%')
là c'est bien équivalent avec la langue de la table positionnée sur "Pdox ANSI Intl".
Zugg est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h08.


 
 
 
 
Partenaires

Hébergement Web