begin process at 2010 02 10 09:27:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Base de données

 > 

SQL Server

 > 

resultat de la fonction like (delphi sql serveur 2005)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

resultat de la fonction like (delphi sql serveur 2005)

dimanche 15 mars 2009 à 10:40:45 | resultat de la fonction like (delphi sql serveur 2005)

wahidov2000

bonjour tm,

J'utilise delphi 7 et sql serveur 2005 pour développé une application, j'ai l'habitude de travaillé avec la fonction LIKE pour le filtre des tables sans aucun problème jusqu'au moment ou j'ai voulu faire un filtre sur la clé primaire d'une table (la clé est de type float) et j'ai pas eu de bon  résultat.
Quand la clé ne  dépasse pas les 6 positions (100.000) j'ai le résultat attendu mais dés qu'elle dépasse ça le résultat est faux

Ma requête est la suivante :

trep.CommandText:='select * from table1 where CODE_ART like'+quotedStr('%'+trim(pv.text)+'%');

trep (ADO data set )

CODE_ART (la clé de la table1)

pv (Tedit)

Merci d'avance pour vos réponses



 

dimanche 15 mars 2009 à 12:26:27 | Re : resultat de la fonction like (delphi sql serveur 2005)

f0xi

Membre Club Administrateur CodeS-SourceS

pour les chiffres ce serait mieux de mettre un filtre d'interval :

WHERE CODE_ART >= 100 AND CODE_ART < 101

aprés je ne sais pas si cela correspond a ce que tu veux faire.

LIKE c'est bien pour le texte ...




dimanche 15 mars 2009 à 13:00:19 | Re : resultat de la fonction like (delphi sql serveur 2005)

wahidov2000


merci f0xi pour votre reponse mais dans mmon cas je dois filtré les chiffres (c un code composé sur 12 positions par exple les 3 premiers c'est la nature le 4 et 5ieme correspondent a l'acheteur .....)
donc pour avoir les article (CODE_ART) du nature 201 je doit affiché tout les code qui commence par 201

wahidov

dimanche 15 mars 2009 à 15:45:15 | Re : resultat de la fonction like (delphi sql serveur 2005)

f0xi

Membre Club Administrateur CodeS-SourceS

alors n'utilise pas le type FLOAT, mais plutot le type INTEGER (entier long) ou VARCHAR.

le type float n'est vraiment pas adapté a ce genre d'utilisation contrairement aux deux autres que je viens de de citer.
le type float en binaire ne peut etre interpreté de façon claire et peu poser des problemes de convertion ou de precision comme tu l'a constater.
les types entiers ou varchar se pretent mieux a ce genre de jeux, de façon plus fiable et efficace.
le type varchar par exemple peu aussi bien etre interpreté en chiffre (quand il est composé uniquement de cela) ou de texte (quand il contient des lettres).
exemple de code avec varchar :
A201HC33
A201FX76
B202HC33

... WHERE CODE_ART LIKE 'A201%' ... fonctionnera parfaitement.

et nous donnera que les codes A201 ...

n'oublie pas qu'en code il faut "penser" correctement les données, aussi bien dans leur presentation brute que leur utilisation pour le developpeur et l'utilisateur.
un exemple flagrant par exemple avec les codes barres dont le numero est trés important ...



dimanche 15 mars 2009 à 19:48:44 | Re : resultat de la fonction like (delphi sql serveur 2005)

cantador

Membre Club

Bonsoir,

(c un code composé sur 12 positions par exple les 3 premiers c'est la nature le 4 et 5ieme correspondent a l'acheteur .....)

Si ta clé primaire n'est pas atomique, c'est qu'il doit y avoir une erreur de modélisation quelque part ce qui arrive assez fréquemment (des tables cachées qui n'ont pas été créée..etc)

pas tout à fait la réponse à ta question mais c'est bon de la savoir..

cantador

lundi 16 mars 2009 à 16:20:24 | Re : resultat de la fonction like (delphi sql serveur 2005)

f0xi

Membre Club Administrateur CodeS-SourceS

pour ce qui est du codage, je dirais même que les codes serait mieux dans des champs séparé :

nature (byte / word / set)
acheteur (dword)

cela offrira un plus large choix ... 2 chiffres pour l'acheteur cela me semble assé limité (limite 100) alors que nature est plus confortable (1000 natures)

n'oublie pas de bien penser tes données selon l'utilisation et la souplesse que tu veux y laisser.

j'avais fait une erreur du genre sur une base de donnée pour l'ID des messages (word) donc erreur quand on depasse 65536 messages ...
depuis dés que j'ai un ID j'utilise directement un entier 64bit (long long int / large int) comme ça plus de limitation.
ce n'est qu'un exemple parmis tant d'autre, comme par exemple le stockage des mdp sous forme de hash (md5 / sha) on m'avait demandé de modifier la clef pour passer d'un 256bits a une clef 512bits cela n'etant pas prevus dés le depart j'ai dus remodifier le champs ... depuis ... a l'identique des ID, je prevois un champs qui peu contenir des clefs 512bits des le depart, même si l'enregistrement se fait uniquement avec des clefs 128 ou 256 bits...
voila.





lundi 16 mars 2009 à 16:48:28 | Re : resultat de la fonction like (delphi sql serveur 2005)

wahidov2000

Réponse acceptée !

merci pour vos reponses (f0xi et cantador)

je pense que j'ai trouvé une simple solution, je copie la valeur du champs CODE_ART de type float dans un autre champs de type string et j'utilises like avec ce deuxieme champs

wahidov



Cette discussion est classée dans : fonction, sql, delphi, like, clé


Répondre à ce message

Sujets en rapport avec ce message

Access / SQL / Delphi [ par minipod ] Salut et merci !En fait, j'ai 2 RichEdit sur ma forme. Dans ma table 'dico' (base access) j'ai 2 colonnes. Je voudrai rentrer un mot dans le RichEdit1 Cherche fonction Delphi [ par costello ] Je cherche une fonction qui renvoie la position d'une chaine dans une autre, mais qui ne s'arrête pas à la premiere occurence !Pos( ) s'arrête dès qu' problème sur une requête SQL complexe... [ par juan ] bjour tous je fais tout un chemin de sélection sur une base de données, en utilisant des requêtes paramétrées afin de pouvoir emprunter plusieurs chem SQL et le mot clef LIKE [ par fab30 ] J'ai un petit probleme avec le mot clef LIKE, j'ai mis dans un evenement ONCHANGE d'un TEdit nommé ESaisi le code suivant :module.ADOQuery1.Active:=fa Un bon tutoriel Delphi / Access / SQL ? [ par minipod ] Est-ce que quelqu'un sait où je peut trouver un bon tutoriel SQL / Delphi 6 ? Sinon, comment je dois faire avec Delphi pour compter le nombre d'enregi Y a t'il la fonction BDE sur delphi 6 perssonnel? [ par Youyou0214 ] Y a t'il la fonction BDE sur delphi 6 perssonnel? car quand j'install delphi 6 perssonnel tout parait marcher et quand je veut créer une base de donné like en Delphi comme VB? [ par piwee ] Salut,est-ce qu'il existe en Delphi une fonction équivalente au "LIKE" de vb ou de sql?Dans le style : "azerty" like "a*ty" renvoie true (ici en vb) Delphi & Access [ par jfg ] Bonjour, je voudrait récupérer toutes les informations d'une table, les mettres dans un fichier XML, puis les écrire dans une base Access, voici ce qu PB DELPHI+SQL SERVEUR URGENT [ par killianst ] Voila j ai un probleme entre SQl serveur et delphi, dans ma table sql server mes champ sont de type nvarchar or l'or de l'affectation dans un outil de delphi sql server [ par morcodou ] salut les amisje voudrai savoir comment se fait la connection de delphi sql sarver avec ado sans assistant?


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales