Forum de discussion
Forum « Programmation ASP » (archives)
Re: vbscripttextarea, guillemets et SGBD
Envoyé: 26 septembre 2003, 8h52 par Oznog
Effectivement les guillemets et double guillemets peuvent faire planter l'ajout dans une base de donnée mais pas à cause de la base mais à cause de ton code.
maVar = "Allo, je suis "prêt" et j'attend"
Tu vois bien que ça pad d'allure cette ligne de code. C'est exactement la même chose qui se passe dans ton cas puisque la requête SQL que tu envois est aussi une simple chaîne de caractères.
Donc en VBScript comment dire au moteur de ne pas traiter le guillemet comme un séparateur mais plustot comme un simple caractère? On dit en programmation, "Escape" le caractère.
Simplement en le doublant (en php ou en Javascript c'est un / devant /"!
maVar = "Allo, je suis ""prêt"" et j'attend"
Pour ta requête et pour toutes les requêtes SQL fait en VBScript, tu dois faire :
' Double les simples guillemets
replace(maChaine,"'","''")
Mais ça dépend de la façon de construire la chaîne en question, si tu utilise des double guillemet :
' Double les doubles guillemets
monSQL = "select V_champ_no, v_champ_nom from t_table where v_champ_nom =" & replace(maChaine,"""","""""")
MAIS ATTENTION, dans un ajout, si dans la même ligne tu fait la requête et l'ajout, donc un INSERT INTO, faut procéder autrement car les guillemet seront doublé dans la base. L'idéale est de le faire avec ADO et un AddNew.
Car dans l'ADDNEW tu envoie directement dans la base, via ADO mais directement. Donc pas de prioblème de guillement, simple ou double.
Pour les saut de lignes, il ne devrait pas avoir de problème. Ça varie selon la plate forme mais je n'ai jamais rien vue de telle encore moins pour la barre de défillement que tout bon français nomme un "ascenseur"!
D'après moi c'est autre chose, la grandeur du texte, ton texte est plus long que ce que la base est prête à acceptet. Virifie ça.
Mais je ne peux pas t'en dire d'avantage ne sachant pas le type de base que tu utilise.
Ciao
Oznog
Réponses
|