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

 


Dernière réponse
Sujet : SQL :UPDATE pose Big problem ! enfin, pour moi :)
TUTU Fabd, ben pourquoi ? message d'erreur ? Mauvais résultat ? Syntaxe ?
Moi sous access 97, avec l'exemple que tu as donné, dans une table de test + une requete update , j'ai pas de problème. Comme tu l'as dit l'essentiel c'est que ca fonctionne.

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
TUTU Fabd, ben pourquoi ? message d'erreur ? Mauvais résultat ? Syntaxe ?
Moi sous access 97, avec l'exemple que tu as donné, dans une table de test + une requete update , j'ai pas de problème. Comme tu l'as dit l'essentiel c'est que ca fonctionne.
fabd Oauis, ben, g bien teste ta soluce, mais ca plante :(
enfin, le principal c ke ca marche :D
TUTU Salut fabd
la syntaxe de ton update est beaucoup plus simple. C'est génial.
Mais la réponse, que je t'avais donnée, fonctionne aussi. J'ai testé les 2 avec 1 requête de sélection et comme donnéesss
'http://images.dvdexpress.com/image/film.jpg' dans une table de test.
Fred999 ...OK. Le souci c'est que je n'avais plus la syntaxe VB en tête...
 
Enfin tu vois, tu as fini par trouver seul!!!
fabd La bonne réponse était :
 
"UPDATE films SET image = 'http://www.'+mid(image,15) WHERE left(image,14)='http://images.'"
 
:D
TUTU Fred999 pourquoi -13 après la longeur de chaine ?
Dans la fonction d'extraction mid ( nom du champ, debut de la chaine, fin de la chaine ) si tu donne le bon début je pense qu'il y pas besoin de faire le -13
fabd
avant de faire des updates, essayes de faire 1 requete de selection avec le champ calculé qui va constituer des updates cela évite les problèmes.
Si ta requête est :
 
UPDATE films SET films.[image] = Mid(image1,7) & "www" & Mid   (mail,14,Len(mail)-13) WHERE films.id=251  
le champ image de la fonction mid doit être en crochet
Mail C'est quoi ?
 
Je pense que la requête doit s'écrire :
 
UPDATE films SET films.[image] = Mid([image],1 ,7) & "www" & Mid ([image] ,14,Len([image])) WHERE films.id=251  
Dans le pire des cas, si les fonctions access ne suffisent tu peux ecrire tes propres fonctions dans la partie module, et les inserer dans tes requetes.

 

--Message édité par TUTU--

fabd Je dois etre encore plus con ke le débutantss:rolleyes:ss
 
Je tape ce ke tu m'a dit, et je teste sur l'id 251, ca donne donc :
UPDATE films SET films.[image] = Mid(image1,7) & "www" & Mid(mail,14,Len(mail)-13)
WHERE films.id=251
 
OK ?ss
 
Ben, ce con m'affiche une boite de dialogue ou je dois taper quelquechose (je c pas koi) image1 et apres mail ? :confused:
 
L'update se fait bien, et le resultat n'est pas bo a voir : au lieu d'avoir ce ke je voudrais, j'ai www , vi vi , juste ca :D
Fred999 TUTU t'a donné (presque) (je pense) la bonne réponse.
 
Bon, comme tu dis n'avoir rien compris, je vais tout décrire, désolé si tu n'es pas débutant :
 
1. Mid (chaîne, début, longueur) est la fonction d'extraction d'une sous-chaîne.
 
Exemple : Mid ("Ca tue sa mère sur HFR", 4, 11) = "tue sa mère"ss
 
On prend les 11 caractères en partant du 4e caractère de la chaîne (espaces inclus).
 
2. & est l'opérateur de concaténation de chaînes de caractères : on les colles les unes aux autres.
 
Exemple : "Ca tue sa mère" & " sur HFR" = "Ca tue sa mère sur HFR"
 
3. Len(chaîne) est une fonction qui retourne la longueur d'une chaîne de caractères.
 
Exemple : Len("Ca tue sa mère sur HFR" ) = 22
 
 
ET DONC :ss
 
L'opération que propose TUTU est de prendre le début de l'URL ("http://" ), et de la concaténer avec "www" puis la fin de l'URL (pour l'exemple que tu donnes dans ton premier post, ".dvdexpress.com/image/film.jpg".
 
Finalement, tu auras une syntaxe du style :ss
 
UPDATE matable
SET monchamp = Mid(monchamp1,7) & "www" & Mid(monchamp,14,Len(monchamp) - 13)
 
Et voilà, c'est tout.
fabd g rien compris :D
 
G bo avoir essayé Altavista traductor, mais ca marche pas :lol:
TUTU voici la fonction access :
 
Mid([TEST],1,7) & "www" & Mid([TEST],14,Len([TEST]))

 

--Message édité par TUTU--

Fred999 Bon, alors il te faut utiliser l'équivalent Access de Substring(expresssion, start, length) qui te sort un extrait d'une chaîne de caractères et Length(expression) qui te donne la longueur d'une chaîne de caractères.
 
Donc :
 
update table
set monchamp = substring (monchamp, 1, 6) + "www" + substring (monchamp, 10, Length(monchamp))
 
 
Voila...
fabd Je viens de tester, et ca marche pas
 
Il ne reconnait pas la syntaxe "replace" dans l'update !
Fred999 Alors fais un test sur une petite table de travail...
 
Désolé sinon Access je ne connais pas. C'est uns syntaxe type TransactSQL?
fabd Le probleme c ke je suis sur une base access, et ke je ne suis pas ché moi et ke je ne travail pas en local :(
Lord II Commence par un select pour voir si la syntaxe du where remonte bien les bonnes infos.
 
De toute facons sous MSSQL, il y a un journal ce qui te permet de revenir en arrière si tu fais une grosse boulette mais je ne sai spas trop comment ca marche !!
fabd Je te fais confiance, sinon je pete toute ma base :D
Lord II Sous MsSql
update table set URL=replace(URL,'//images','//www') WHERE URL like 'http://images%'
 
si je me rappelle bien la syntaxe de replace
fabd Voila, j'ai un champs qui contient une URL de type (il y a 600 lignes differentes) :
 
http://images.dvdexpress.com/image/film.jpg
 
Le probleme, c que je veux remplacer le "images" par "www" sans avoir a me taper tts les lignes a la main.
 
Auriez vous une solution pour faire un UPDATE d'une partie du champs pour conserver le reste ?
 
Merci

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