Problem med forløkker og sql
Jeg laver nogle INSERTs, men hver INSERT bliver udført to gange.Min kode:
Const adOpenKeyset = 1
Const adLockOptimistic = 3
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../../database/cddb.mdb") & ";UID=admin;PWD=;"
rootpath = "f:\"
level = 0
Response.Write "Directory: " & rootpath & "<BR><BR>"
antalfiler = 0
antalmapper = 0
sub getPath(strPath,level)
Set fsObj = CreateObject("Scripting.FileSystemObject")
Set MainFolder = fsObj.GetFolder(strPath)
Set Files = MainFolder.Files
Set Folders = MainFolder.subfolders
For Each Folder in Folders
antalmapper = antalmapper + 1
for a = 1 to level
Response.Write "<IMG SRC=""spacerstreg.gif"">"
next
response.write "<IMG SRC=""folder.gif""> <B>" & folder.name & "</b><br>"
call getPath(strPath & "\" & folder.name,level+1)
next
For Each File in Files
antalfiler = antalfiler + 1
for a = 1 to level
Response.Write "<IMG SRC=""spacerstreg.gif"">"
next
response.write "<IMG SRC=""spacerny.gif"">" & file.name & ", "
nysize = 0
nysize = file.Size
i = 0 '0=bytes ; 1=kbytes ; 2=Mbytes ; 3 = Gbytes
do while nysize > 1024 and i < 3
nysize = nysize / 1024
i=i+1
loop
arr = split(nysize, ",")
nysize = FormatNumber(arr(0),0,0,0,-1)
if Ubound(arr)>=1 then
nysize = nysize & "." & (left(arr(1), 2))
end if
'Sæt enten KB,MB eller GB
Select case i
case 0
nysizeangiv = "B"
case 1
nysizeangiv = "KB"
case 2
nysizeangiv = "MB"
case 3
nysizeangiv = "GB"
end select
response.write "<b>" & nysize & " " & nysizeangiv & "</b> "
sti = len(file.parentfolder)
arr = split(file.parentfolder, "\")
stien = ""
if Ubound(arr)>=1 then
for i = 0 to UBOUND( arr )
next
for j = 1 to (i-1)
stien = stien & "\" & arr(j)
next
end if
response.write stien & ", "
response.write file.Type & "<br>"
sql[antalfiler] = "insert into filer (navn, storrelse, storrelseangivelse, type, sti) values('" & file.name & "', " & nysize & ", '" & nysizeangiv & "', '" & file.Type & "', '" & stien & "')"
response.write "sql " & sql & "<br>"
Conn.execute(sql)
next
set fsObj = Nothing
set MainFolder = Nothing
end sub
call getPath(rootpath,level)
Response.write "antallet af mapper: " & antalmapper
Response.write " antallet af filer: " & antalfiler
Jeg havde tænkt på at smide INSERTsne ind i et array, men det kan jeg ikke liige få til at virke. Hvordan gør man det, og er løsningen? `
Hvis ikke, hvad så?
