Avatar billede bobbedude Nybegynder
31. juli 2003 - 07:46 Der er 5 kommentarer og
2 løsninger

SQL sætning der driller

Her er nogle stier fra min database

/mediebank/images/demo/Users/kontrol 4
/mediebank/images/demo/Users/kontrol 4/Test 2
/mediebank/images/demo/Users/kontrol 4/Test 2
/mediebank/images/demo/Users/kontrol 4/Test 2

Disse stier kommer fra RÆKKEN billeddir.
Jeg har så en anden RÆKKE hvor navnet på billederne er.

Hvis jeg nu vil omdøbe mappen kontrol 4 til kontrol 41 sker der det at den godt nok omdøber dem men den fjerner så alt der kommer efter.
det vil sige at:
/mediebank/images/demo/Users/kontrol 4/Test 2
bliver til
/mediebank/images/demo/Users/kontrol 4
Og det var jo ikke meningen.

Her er min sql men de variabler jeg bruger:


stien=Request.Form("stien")
mappe=Request.Form("mappen")
NytMappeNavn = Request.Form("nytnavn")

sti1=mapperoden&stien&"/"&mappe
sti2=mapperoden&stien&"/"&NytMappeNavn
glsti=stien&"/"&mappe
nysti=stien&"/"&NytMappeNavn

set connect = server.createobject("ADODB.Connection")
Connect.open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("../db/"&database&"")

SQL = "UPDATE billeder SET billeddir = IIf(InStr(1,[billeddir],'" &  glsti & "')>0, '"& nysti &"', billeddir);"
Avatar billede jpvj Nybegynder
31. juli 2003 - 07:54 #1
Kan du ikke lige lave et output af din SQL lige før du opdaterer?

Altså

Response.Write(SQL)
Avatar billede bobbedude Nybegynder
31. juli 2003 - 08:04 #2
Jeg tror jeg selv fik det løst, det virker ihvertifald, men lad mig lige hører hvad i mener..


set rs = connect.Execute("Select * From billeder")

if not rs.EOF then
Do until rs.EOF

If InStr(rs("billeddir"),glsti) Then

Banko = replace(rs("billeddir"), glsti, nysti)
response.write Banko &"<br>"

SQL = "Update billeder set billeddir= '" & Banko & "' "
SQL = SQL & " WHERE id= "& rs("id")
response.write SQL
Connect.Execute(SQL)

End If

rs.MoveNext
Loop
else
response.write "ingen felter"
end if
Avatar billede cesil Nybegynder
31. juli 2003 - 08:31 #3
det ser fornuftigt nok ud. Lidt formattering af koden gør det lettere og overskue.
Husk og luk dit recordset.

set rs = connect.Execute("Select * From billeder")
if not rs.EOF then
    Do until rs.EOF
        If InStr(rs("billeddir"),glsti) Then
            Banko = replace(rs("billeddir"), glsti, nysti)
            response.write Banko &"<br>"
           
            SQL = "Update billeder set billeddir= '" & Banko & "' "
            SQL = SQL & " WHERE id= "& rs("id")
            response.write SQL
            Connect.Execute(SQL)
        End If
    rs.MoveNext
    Loop
else
    response.write "ingen felter"
end if
set rs=nothing
rs.close
Avatar billede squashguy Nybegynder
31. juli 2003 - 08:41 #4
jeg villle nok vælge at lukke rs inden jeg sætter det lig nothing...
Avatar billede bobbedude Nybegynder
31. juli 2003 - 09:59 #5
cesil >> Jeg havde lukket mit record set men ikke fået det med her.

hvorfor er det man skal sætte sit record = nothing ?
Avatar billede cesil Nybegynder
31. juli 2003 - 13:22 #6
for at fjerne referencen til objectet
Avatar billede bobbedude Nybegynder
31. juli 2003 - 13:37 #7
oki

håber der er ok med dig at vi deler point
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