DatabaseUpdate [Réglé]
DatabaseUpdate [Réglé]
Bonjour.
soit la ligne suivante :
DatabaseUpdate(base,"UPDATE perso SET age=34 WHERE id=1")
pas de problemes, ca roule.
Mais maintanenant je souhaite mettre à jour un champ avec une chaine de charactere tel que par ex :
update perso set lieunaissance = "Paris" where id = 45
Pas moyen...
Une âme charitable peut-être ?
Merci.
soit la ligne suivante :
DatabaseUpdate(base,"UPDATE perso SET age=34 WHERE id=1")
pas de problemes, ca roule.
Mais maintanenant je souhaite mettre à jour un champ avec une chaine de charactere tel que par ex :
update perso set lieunaissance = "Paris" where id = 45
Pas moyen...
Une âme charitable peut-être ?
Merci.
Dernière modification par Aratytof le mar. 27/févr./2007 18:19, modifié 3 fois.
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Tiens une question sur les BD cela faisait longtemps....
Essaie de mettre des guillemets simples autour de paris :
ou de mettre le chr(34) comme ceci :
Essaie de mettre des guillemets simples autour de paris :
Code : Tout sélectionner
"UPDATE perso SET lieunaissance = 'Paris' WHERE id = 45 "
Code : Tout sélectionner
"UPDATE perso SET lieunaissance = "+chr(34)+"Paris"+chr(34)+" WHERE id = 45 "
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
- Progi1984
- Messages : 2659
- Inscription : mar. 14/déc./2004 13:56
- Localisation : France > Rennes
- Contact :
Monsieur, Monsieur, Pas de monsieur entre nous. Call me just God ! lol
Appelle moi simplement Progi1984 ou Progi...
Appelle moi simplement Progi1984 ou Progi...
Librairies & Applications : https://www.purebasic.fr/french/viewtop ... f=8&t=6220
Site Web : https://rootslabs.net
Site Web : https://rootslabs.net
Code : Tout sélectionner
ChaineTest.s = "UPDATE perso SET LieuDeNaissance = '" + lieu.s + "' WHERE id = 4"
d'ailleurs je te conseille de toujours en mettre sauf pour les numerics (même si mysql les tolère quand même).
parfois pour de longues et fastidieuses requêtes SQL, on peut adopter cette méthode :
ou bien dans le même esprit
Code : Tout sélectionner
sql$ = "UPDATE perso SET LieuDeNaissance = 'lieu$' WHERE id = id$"
sql$ = ReplaceString(sql$, "id$", "4")
sql$ = ReplaceString(sql$, "lieu$", "Les Sables d'Olonne")
Code : Tout sélectionner
sql$ = "UPDATE perso SET LieuDeNaissance = '%lieu%' WHERE id = %id%"
sql$ = ReplaceString(sql$, "%id%", "4")
sql$ = ReplaceString(sql$, "%lieu%", "Les Sables d'Olonne")
ah et puis d'ailleurs - autre problème à prendre en compte dans une requête SQL :
les accents (dans d'Olonnes par exemple) qui vont être confondus avec les guillemets de chaines de caractères.
Il faut utiliser le caractère d'échappement \ (antislash) devant l'accent
Ce qui donne 'Les Sables d\'Olonnes'
En général je fais comme ceci (j'en manipule beaucoup au travail en purebasic ou php) :
les accents (dans d'Olonnes par exemple) qui vont être confondus avec les guillemets de chaines de caractères.
Il faut utiliser le caractère d'échappement \ (antislash) devant l'accent
Ce qui donne 'Les Sables d\'Olonnes'
En général je fais comme ceci (j'en manipule beaucoup au travail en purebasic ou php) :
Code : Tout sélectionner
;-
Macro SQL(requete, nom, valeur)
ReplaceString(requete, nom, ReplaceString(valeur, "'", "\'"))
EndMacro
;-
Define req.s
req = "UPDATE perso SET "
req + "DateDeNaissance = '%date%', "
req + "LieuDeNaissance = '%lieu%' "
req + "WHERE id = %id%"
req = SQL(req, "%id%", "4")
req = SQL(req, "%date%", "1980-12-31")
req = SQL(req, "%lieu%", "Les Sables d'Olonne")
MessageRequester("Requête SQL", req)
;-
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
Par contre sous une BD Microsoft (ex : ACCESS), il faut utiliser un ' pour échapper un ':
Code : Tout sélectionner
Fonction("UPDATE test SET coucou='c''est bien'")
Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !