Pb insert en asp

Snatch -  
 snatch -
Bonjour,
je dois dans une page web recuperer des donnees dans un formulaire pour ensuite les inserer dans ma base de données
j'utilise pour cela une page asp et j ecris ma requete a l'interieur d'une fonction. J'arrive a ajouter des enregistrement mais le probleme vient du fait que j'ai deux champs (lib1 et lib2) ou les utilisateurs sont susceptibles d'ecrire du texte avec des apostrophes ce qui provoque des erreurs.
A noter que normalement lib1 et lib 2 sont codés de la meme maniere meme si ici ils sont differents car j ai essaye plusieurs manieres

if trim(cCode) = "" then
strSQL = "insert into ec_pays ( pa_code,pa_zone, pa_lib1,pa_lib2,pa_com1, pa_com2) values ('" + trim(oForm.pa_code.value) + "','"
strSQL = strSQL + trim(oForm.pa_zone.value) + "','"
strSQL = strSQL + trim(oForm.pa_lib1.value) + "'," + chr(39)
strSQL = strSQL + trim(oForm.pa_lib2.value) + chr(39) + ",'" + trim(oForm.pa_com1.value) + "','" + trim(oForm.pa_com2.value) + "')"
msgbox (strSQL)
dbCxGti.execute strSQL
else


est ce que quelqu'un pourrait m'aider svp???

2 réponses

fidjy5
 
Salut,

tout premièrement tu dois remplacer tes "+" par des esperluettes "&"!
Et pour gérer le probleme des apostrophes je te conseilles d'utiliser la fonction replace comme ceci:
nouvelle_chaine=replace(ancienne_chaine," ' "," ") par exempl pour modifier ton caractere ' en espace..
0
Snatch
 
salut,

j'ai applique ce que tu m'as dit mais la fonction replace me renvoie vrai au lieu de ma chaine!


strSQL = "insert into ec_pays ( pa_code,pa_zone, pa_lib1,pa_lib2,pa_com1, pa_com2) values ('" & trim(oForm.pa_code.value) & "','"
strSQL = strSQL & trim(oForm.pa_zone.value) & "','"
strSQL = strSQL & (trim(oForm.pa_lib1.value) = Replace((trim(oForm.pa_lib1.value))," ' "," ")) & "','" + chr(34)
strSQL = strSQL & trim(oForm.pa_lib2.value) & chr(34) + "','" & trim(oForm.pa_com1.value) & "','" & trim(oForm.pa_com2.value) & "')"
msgbox (strSQL)
dbCxGti.execute strSQL


y'aurait il une erreur dans la syntaxe?

merci d'avoir repondu si vite ! ;D
0
fidjy5
 
Je sais pas si le problème vient de là mais dans ton replace ta pa a metre de trim g penC

value_pa_lib1 = replace(oForm.pa_lib1.value," ' "," ")
strSQL = "insert into ec_pays ( pa_code,pa_zone, pa_lib1,pa_lib2,pa_com1, pa_com2) values ('" & trim(oForm.pa_code.value) & "','"
strSQL = strSQL & trim(oForm.pa_zone.value) & "','"
strSQL = strSQL & value_pa_lib1 & "','" &chr(34) &""
strSQL = strSQL & trim(oForm.pa_lib2.value) &""& chr(34) &"','" & trim(oForm.pa_com1.value)& "','" & trim(oForm.pa_com2.value) & "')"
msgbox (strSQL)
dbCxGti.execute strSQL

voila et si la ca marche pas ben fodra demander à quelqu'un d'autre ^^
(Tu peu aussi essayer sans les trim...)
0
snatch
 
je te remercie c'est ok!
j'ai finalement utilise la forme

strSQL = "insert into ec_pays ( pa_code,pa_zone, pa_lib1,pa_lib2,pa_com1, pa_com2) values ('" & trim(oForm.pa_code.value) & "','"
strSQL = strSQL & trim(oForm.pa_zone.value) & "','"
strSQL = strSQL & replace(trim(oForm.pa_lib1.value),"'","''") & "','"
strSQL = strSQL & replace(trim(oForm.pa_lib2.value),"'","''") & "','" & trim(oForm.pa_com1.value) & "','" & trim(oForm.pa_com2.value) & "')"


bonne continuation!!
0