Avatar billede bobbedude Nybegynder
25. juli 2002 - 13:36 Der er 12 kommentarer og
1 løsning

en lang sti

Jeg har i min db et felt kaldet billeddir her gemmes en sti:
/mediebank/images/test/test2

Med FSO kopier jeg mappen men jeg skal også opdater stien i databasen.

hvis jeg kopier test2 til et andet dir skal de mapper der ligger i test2 jo også have opdateret stien.

jeg havde tænkt på at lave en replace men kan ikke rigtig komme igang, kan du ??
Avatar billede tmceu Praktikant
25. juli 2002 - 13:38 #1
Du kan lave en UPDATE i SQL, eks.

UPDATE Tabel SET Felt = REPLACE(Felt, '/mediebank/images/test/test2', '/andensti/')
Avatar billede exp-ralle Nybegynder
25. juli 2002 - 13:43 #2
Kan man bruge replace i SQL ?
Avatar billede tmceu Praktikant
25. juli 2002 - 13:46 #3
Ja, men jeg kom nu egentlig nok med et lidt hurtigt svar, jeg havde lige tankerne på SQL Server *S*
- ovenstående virker ikke på alle databaser. Hvilken database/version anvender du ?
Avatar billede bobbedude Nybegynder
25. juli 2002 - 14:27 #4
en access og den siger Undefined function 'REPLACE' in expression
Avatar billede bobbedude Nybegynder
25. juli 2002 - 14:39 #5
man kan ikke i en access æv
Avatar billede tmceu Praktikant
25. juli 2002 - 14:48 #6
Kunne du give et eksempel på en komplet værdi af feltet fra databasen, så skal jeg lave noget der virker i Access...
Avatar billede bobbedude Nybegynder
25. juli 2002 - 14:56 #7
gammel sti = /mediebank/images/test2
Ny sti = /mediebank/images/test2/testfolder
Avatar billede tmceu Praktikant
25. juli 2002 - 16:41 #8
Denne erstatter hele feltindholdet, hvis den finder den gamle

UPDATE Tabel
SET FELT = IIf(InStr(1,[Felt],"/mediebank/images/test2")>0, "/mediebank/images/test2/testfolder", Felt);
Avatar billede bobbedude Nybegynder
25. juli 2002 - 18:16 #9
tmceu >> Jeg checker det straks imorgen tidlig, jeg har selv været igang med noget med et loop it et loop men det virkede ikke lige helt rigtig, og det du har lavet ser noget mere enkelt ud. P.s skal
SET FELT = IIf(
ikke være
SET FELT = If(
Avatar billede tmceu Praktikant
25. juli 2002 - 23:06 #10
Næh, den hedder faktisk sådan :-)
Avatar billede bobbedude Nybegynder
26. juli 2002 - 07:33 #11
tmceu >> Du aner ikke hvad du har sparet mig for.
Det virker bare perfekt tusind tak for hjælpen.
Avatar billede bobbedude Nybegynder
26. juli 2002 - 08:16 #12
Håber du lige gider spilde tiden, men jeg vil gerne have den til at slette fra db også, så jeg prøvede

sql = "DELETE FROM billeder WHERE billeddir = IIf(InStr(1,[billeddir],'" &  unustien & "')>0, '"& unustien &"', billeddir);"

Men hehe det slettede sgu hele lo.... i databasen.
Avatar billede tmceu Praktikant
26. juli 2002 - 09:31 #13
Jeps. IIF er det man kan kalde for et betinget udtryk. Som du måske har regnet ud, betår den af en betingelse, en true og en false del. Anvendt som WHERE clause i en DELETE, vil den derfor slette alt, da betingelsen jo altid vil være enten sand eller falsk :-)

Det er sandsynligvis denne du leder efter:

sql = "DELETE FROM billeder WHERE InStr(1,[billeddir],'" &  unustien & "')>0"

Hvis du kun vil slette rækker med en eksakt match, er det noget i denne stil:

sql = "DELETE FROM billeder WHERE billeddir = '" &  unustien & "'"
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester