Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2230 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  SQL Server : dé-spécialiser guillemets ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

SQL Server : dé-spécialiser guillemets ?

n°1738767
Sbartacus
Posté le 29-05-2008 à 12:00:41  profilanswer
 

Bonjour,
 
Je fais un formulaire, dont les champs récupérés serviront à faire des requête sur une BD SQL Server 05.  
Or, lorsque l'utilisateur rentre par exemple un champ avec un apostrophe au milieu, cela fausse la requête.
 
Exemple :  
Nom ==> D'Agostinho  
Prénom ==> Pierre
 
La requête qui en résulte est  
 

Code :
  1. INSERT INTO TABLE VALUES('D'Agostinho', 'Pierre');


 
Comment faire pour éviter ce désagrément ?  
Merci.

mood
Publicité
Posté le 29-05-2008 à 12:00:41  profilanswer
 

n°1738792
masklinn
í dag viðrar vel til loftárása
Posté le 29-05-2008 à 12:10:58  profilanswer
 

Apprendre à coder, et dans ce cas précis à utiliser des requêtes préparées?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1738803
Sbartacus
Posté le 29-05-2008 à 12:18:21  profilanswer
 

Peux-tu m'en dire plus sur les requêtes préparées ?  
J'voulais savoir si le code se fait du côté de SQL Server ou uniquement du côté du formulaire ?

n°1738817
masklinn
í dag viðrar vel til loftárása
Posté le 29-05-2008 à 12:46:55  profilanswer
 

Sbartacus a écrit :

Peux-tu m'en dire plus sur les requêtes préparées ?


Non, google est là pour ça


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1738825
Sbartacus
Posté le 29-05-2008 à 12:54:22  profilanswer
 

Mauvaise journée ou mauvais réveil on dirait...
Pas grave, merci quand même.

n°1795097
Ill Nino
Love
Posté le 03-10-2008 à 10:04:30  profilanswer
 

Salut,
 
j'ai exactement le meme probleem. T'as reussit a le resoudre entre temps? :)
 
A+


---------------
Faut qu'on court comme des lions, des tigres et des ours!
n°1795121
flo850
moi je
Posté le 03-10-2008 à 11:19:01  profilanswer
 

au niveau de ton formulaire, tu dois TOUJOURS valider que tes données soient saines
 
dans ce cas précis tu dois remplacer les ' par \' , il existe généralement des fonctions prévues pour adns les langages
Mieux, tu peux utiliser des requetes preparées ( prepared statment )


---------------

n°1795124
Ill Nino
Love
Posté le 03-10-2008 à 11:20:03  profilanswer
 

Arf, dans mon cas c'est un SQL et je tape direct dans la base de donnée. mais entre temps, j'ai trouvé, faut mettre ca: '' (deux fois ' )


---------------
Faut qu'on court comme des lions, des tigres et des ours!
n°1795198
masklinn
í dag viðrar vel til loftárása
Posté le 03-10-2008 à 13:31:09  profilanswer
 

Ill Nino a écrit :

Arf, dans mon cas c'est un SQL et je tape direct dans la base de donnée. mais entre temps, j'ai trouvé, faut mettre ca: '' (deux fois ' )


 [:prozac]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1795199
Ill Nino
Love
Posté le 03-10-2008 à 13:33:47  profilanswer
 


T'as l'air vachement malin comme gars toi! En tous cas sur ce topic tu rayonnes de connerie...  :o


---------------
Faut qu'on court comme des lions, des tigres et des ours!
mood
Publicité
Posté le 03-10-2008 à 13:33:47  profilanswer
 

n°1795217
masklinn
í dag viðrar vel til loftárása
Posté le 03-10-2008 à 14:08:04  profilanswer
 

Ill Nino a écrit :


T'as l'air vachement malin comme gars toi! En tous cas sur ce topic tu rayonnes de connerie...  :o


En l'occurence je te réfère à ma première réponse qui donne l'unique méthode correcte, plutôt que ton espèce d'immonde soupe dégueulasse à base de fail.

Message cité 1 fois
Message édité par masklinn le 03-10-2008 à 14:08:30

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1795228
skeye
Posté le 03-10-2008 à 14:23:38  profilanswer
 

masklinn a écrit :


En l'occurence je te réfère à ma première réponse qui donne l'unique méthode correcte, plutôt que ton espèce d'immonde soupe dégueulasse à base de fail.


(oui enfin en sql brut les requêtes préparées hein...[:petrus75])

 

[edit]

 

Ah tiens j'avais pas vu que ça causait de formulaire au début.[:joce]

Message cité 1 fois
Message édité par skeye le 03-10-2008 à 14:24:10

---------------
Can't buy what I want because it's free -
n°1795229
flo850
moi je
Posté le 03-10-2008 à 14:24:13  profilanswer
 

Ill Nino a écrit :


T'as l'air vachement malin comme gars toi! En tous cas sur ce topic tu rayonnes de connerie...  :o


 
c'est pas que je l'apprécie bcp , mais je penses que le nombre de personnes qui peuvent le traiter d'incompetent sur ce forum est tres restreint
 
tu peux detailelr un peu comemnt tu travaille, parceque , de memoire, quand tu travaille uniquement dans les abses de donénes ( sans langage php/asp/vb/... ) les accents ne posent pas de problème


---------------

n°1795233
Ill Nino
Love
Posté le 03-10-2008 à 14:30:12  profilanswer
 

J'le traitais pas d'incompétent, j'trouve juste ca nul de venir prendre les gens de haut. C'est un forum pour experts en dev ici? :o
 
Et comme dit c'est un SQL en direct dans la BDD que je faisais...
 
Mon problème était avec des LIKE et les pseudos regex qui commencent et finissent par le fameux ' . Rechercher ce ' dans la regex la coupait en deux.
 
J'ai p'etre mal vu sinon, mais j'trouve ca dommage que SQL Server ne permette pas l'utilisation de vraie regex d'ailleurs... Ca serait bien pratique...


---------------
Faut qu'on court comme des lions, des tigres et des ours!
n°1795238
flo850
moi je
Posté le 03-10-2008 à 14:32:11  profilanswer
 

donc tu as juste repris un sujet qui ne parlait pas du même problème pour poser ta question, c'est rarement une bonne idée
[:proy]


---------------

n°1795239
skeye
Posté le 03-10-2008 à 14:33:07  profilanswer
 

Ill Nino a écrit :

J'le traitais pas d'incompétent, j'trouve juste ca nul de venir prendre les gens de haut. C'est un forum pour experts en dev ici? :o
 
Et comme dit c'est un SQL en direct dans la BDD que je faisais...
 
Mon problème était avec des LIKE et les pseudos regex qui commencent et finissent par le fameux ' . Rechercher ce ' dans la regex la coupait en deux.
 
J'ai p'etre mal vu sinon, mais j'trouve ca dommage que SQL Server ne permette pas l'utilisation de vraie regex d'ailleurs... Ca serait bien pratique...


 
non mais ton formulaire il est fait en quel langage?
Parce-que franchement il FAUT utiliser des requêtes préparées si tu veux éviter les ennuis...


---------------
Can't buy what I want because it's free -
n°1795244
Ill Nino
Love
Posté le 03-10-2008 à 14:34:15  profilanswer
 

skeye a écrit :


 
non mais ton formulaire il est fait en quel langage?
Parce-que franchement il FAUT utiliser des requêtes préparées si tu veux éviter les ennuis...


Je n'ai pas de formulaire... :D J'fais de l'analyse de DB a sec... :D


---------------
Faut qu'on court comme des lions, des tigres et des ours!
n°1795249
skeye
Posté le 03-10-2008 à 14:37:16  profilanswer
 

donc ton premier post raconte n'importe-quoi.[:doc petrus]


---------------
Can't buy what I want because it's free -
n°1795251
Ill Nino
Love
Posté le 03-10-2008 à 14:38:36  profilanswer
 

skeye a écrit :

donc ton premier post raconte n'importe-quoi.[:doc petrus]


C'est pas moi le premier post...


---------------
Faut qu'on court comme des lions, des tigres et des ours!
n°1795252
skeye
Posté le 03-10-2008 à 14:39:35  profilanswer
 

ouh pinaise.[:pingouino]
Donc  
1) Tu n'as pas "exactement le même problème"
2) Je suis mal réveillé.


---------------
Can't buy what I want because it's free -
n°1795253
flo850
moi je
Posté le 03-10-2008 à 14:40:28  profilanswer
 

3) tu as forcé sur l'apéro a midi


---------------

n°1795254
skeye
Posté le 03-10-2008 à 14:40:44  profilanswer
 

même pas [:sadnoir]


---------------
Can't buy what I want because it's free -
n°1795255
flo850
moi je
Posté le 03-10-2008 à 14:41:23  profilanswer
 

moi si , et j'avais compris avant toi  
 
faut te poser les bonnes questions maitnenant   [:sophievvl]


---------------

n°1795262
Ill Nino
Love
Posté le 03-10-2008 à 14:44:12  profilanswer
 

Ok, ok, j'ai pas exactement le meme probleme que lui alors... :D C'est vrai... Mais les causes et les consequences sont les memes non? :??: Un ' qui vient couper une chaine en deux et ca fout le binz...


---------------
Faut qu'on court comme des lions, des tigres et des ours!
n°1795263
skeye
Posté le 03-10-2008 à 14:46:22  profilanswer
 

Ill Nino a écrit :

Ok, ok, j'ai pas exactement le meme probleme que lui alors... :D C'est vrai... Mais les causes et les consequences sont les memes non? :??: Un ' qui vient couper une chaine en deux et ca fout le binz...


oui, mais la solution est complètement différente.


---------------
Can't buy what I want because it's free -
n°1795265
flo850
moi je
Posté le 03-10-2008 à 14:47:39  profilanswer
 

ben non

 

d'un coté ,on parle de sécuriser un formulaire ( automatiquement ) , de l'autre de requetes construites à la main. Donc d'un coté , cas e fait avec le langage utilisé coté serveur ( php/asp / ... ) et de l'autre , c'est une façon d'ecrire sa requêtes

 

on en revient donc au coeur du sujet
 [:prozac]

 

Message cité 1 fois
Message édité par flo850 le 03-10-2008 à 14:47:54

---------------

n°1795268
Ill Nino
Love
Posté le 03-10-2008 à 14:50:40  profilanswer
 

skeye a écrit :


oui, mais la solution est complètement différente.


J'sais pas quoi te repondre la... C'est quoi la question?
 
"SQL Server : dé-spécialiser guillemets ?" moi aussi il fallait faire ca...


---------------
Faut qu'on court comme des lions, des tigres et des ours!
n°1795269
Ill Nino
Love
Posté le 03-10-2008 à 14:51:39  profilanswer
 

flo850 a écrit :

ben non  
 
d'un coté ,on parle de sécuriser un formulaire ( automatiquement ) , de l'autre de requetes construites à la main. Donc d'un coté , cas e fait avec le langage utilisé coté serveur ( php/asp / ... ) et de l'autre , c'est une façon d'ecrire sa requêtes
 
on en revient donc au coeur du sujet  
 [:prozac]  
 


Ouhla, tu viens de casser le truc la. On aurait pu tenir toute l'aprem sur cette discussion de sourds... :D


---------------
Faut qu'on court comme des lions, des tigres et des ours!
n°1795281
masklinn
í dag viðrar vel til loftárása
Posté le 03-10-2008 à 15:08:43  profilanswer
 

skeye a écrit :

(oui enfin en sql brut les requêtes préparées hein...[:petrus75])


C'est fait pour ça, un peu [:pingouino]
 
Tu confonds pas avec les stored procs?

Ill Nino a écrit :

Ok, ok, j'ai pas exactement le meme probleme que lui alors... :D C'est vrai... Mais les causes et les consequences sont les memes non? :??: Un ' qui vient couper une chaine en deux et ca fout le binz...


Et la réponse est la même, prepared statement et non ta soupe immonde.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1795282
skeye
Posté le 03-10-2008 à 15:10:03  profilanswer
 

masklinn a écrit :


C'est fait pour ça, un peu [:pingouino]
 
Tu confonds pas avec les stored procs?


 
WTF? S'il écrit son sql à la main dans un outil dédié il va pas s'amuser à y coller des variables.[:pingouino]


---------------
Can't buy what I want because it's free -
n°1795283
masklinn
í dag viðrar vel til loftárása
Posté le 03-10-2008 à 15:11:28  profilanswer
 

skeye a écrit :

WTF? S'il écrit son sql à la main dans un outil dédié il va pas s'amuser à y coller des variables.[:pingouino]


Ca l'empêche pas d'utiliser des prepared statements, à la base c'est une fonctionalités des DBs ce truc pas des langages, et MySQL expose une interface SQL pour :o

 

http://dev.mysql.com/tech-resource [...] ments.html bon ok c'est un peu verbeux, mais avec ça il est tranquille [:spamafote]

Message cité 1 fois
Message édité par masklinn le 03-10-2008 à 15:12:55

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1795284
flo850
moi je
Posté le 03-10-2008 à 15:12:45  profilanswer
 

un peu verbeux ?  
 
c'est comme dire qu'il y aun peu de parenthèses en lisp


---------------

n°1795286
masklinn
í dag viðrar vel til loftárása
Posté le 03-10-2008 à 15:13:43  profilanswer
 

flo850 a écrit :

un peu verbeux ?

 

c'est comme dire qu'il y aun peu de parenthèses en lisp


Faut pas abuser non plus, ça prend 2 lignes, et si une query donnée doit être effectuée plusieurs fois ça coûte quasiment plus rien (enfin c'est complètement con qu'ils forcent à utiliser des variables plutôt que des valeurs, postgres s'mieux [:petrus75])


Message édité par masklinn le 03-10-2008 à 15:16:26

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1795294
skeye
Posté le 03-10-2008 à 15:20:31  profilanswer
 

masklinn a écrit :


Ca l'empêche pas d'utiliser des prepared statements, à la base c'est une fonctionalités des DBs ce truc pas des langages, et MySQL expose une interface SQL pour :o
 
http://dev.mysql.com/tech-resource [...] ments.html bon ok c'est un peu verbeux, mais avec ça il est tranquille [:spamafote]


 
ça a à peu près aucun intérêt en-dehors d'une procédure stockée, ça.:o


---------------
Can't buy what I want because it's free -
n°1795296
masklinn
í dag viðrar vel til loftárása
Posté le 03-10-2008 à 15:23:57  profilanswer
 

skeye a écrit :

ça a à peu près aucun intérêt en-dehors d'une procédure stockée, ça.:o


Ben si, ça a l'intérêt de pas devoir échapper manuellement ses guillemets, et d'être sûr que ça va marcher sans se vautrer, ce qui est le but recherché ici d'après ce que j'ai pu comprendre [:pingouino]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1795305
skeye
Posté le 03-10-2008 à 15:38:40  profilanswer
 

masklinn a écrit :


Ben si, ça a l'intérêt de pas devoir échapper manuellement ses guillemets, et d'être sûr que ça va marcher sans se vautrer, ce qui est le but recherché ici d'après ce que j'ai pu comprendre [:pingouino]


Non mais faut arrêter de déconner, si tu veux éviter les soucis en tapant une requête à la main tu le fais dans un éditeur digne de ce nom, c'est tout.[:pingouino]
Evidemment, je peux lancer sql developper et remplacer toutes les valeurs par :valeur et renseigner les infos à l'exécution, mais ça apporte rien, là. Vraiment rien. :o


---------------
Can't buy what I want because it's free -
n°1795309
flo850
moi je
Posté le 03-10-2008 à 15:40:36  profilanswer
 

c'est clari , a moins d'avoir vraiment du temps a perdre  
 
tu t'habitue vite a ton nouveau statut :o


---------------

n°1795421
MagicBuzz
Posté le 03-10-2008 à 18:14:57  profilanswer
 

hé ben putain... j'ai callé l'affaire au milieu. z'avez fini de traumatiser les nouveaux comme ça ? :o
 
ceci dit, je suis pas d'accord avec masklinn sur un point : si on code direct dans un requêteur sql, les variables ça résoud pas les soucis de guillements : ils se posent tout pareil au moment d'affecter les variables :o

n°1795435
skeye
Posté le 03-10-2008 à 19:10:20  profilanswer
 

MagicBuzz a écrit :

hé ben putain... j'ai callé l'affaire au milieu. z'avez fini de traumatiser les nouveaux comme ça ? :o

 

ceci dit, je suis pas d'accord avec masklinn sur un point : si on code direct dans un requêteur sql, les variables ça résoud pas les soucis de guillements : ils se posent tout pareil au moment d'affecter les variables :o


dépend de l'outil.[:dawao]


Message édité par skeye le 03-10-2008 à 19:10:28

---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  SQL Server : dé-spécialiser guillemets ?

 

Sujets relatifs
[C++ / SQL] Enregistrer un objet en tant que blobAppeler SQL sans recharger une page PHP
Importer des données XML dans Oracle (SQL Loader ou DBMS_XMLSave)AIDE requete SQL
[SQL Server et Java] Problème avec les datesrequête SQL (C++ builder 2007)
SQL Loader - problème d'encodage des caractères accentués[SQL Server] Est-il possible de créer des formulaires ?
Plus de sujets relatifs à : SQL Server : dé-spécialiser guillemets ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR