Hej Du försöker lägga till något med samma innehåll i variabeln nameN som du redan har lagt till. nameN måste vara unikt för varje Har provat att döpa om variablerna utan framgång. Nej variablerna ska inte döpas om utan innehållet! Du får sätta en breakpoint vid varje add för att se vad variablen innehåller och då kommer du att upptäcka att du hittar samma värde 2 gånger.runtime error '800a01c9'
Har ett skript som laddar upp ett formulär som kan innehålla en bild till en databas.
Det har funkat klockrent och utan förvarningn kommer detta felmeddelande upp:
Microsoft VBScript runtime error '800a01c9'
This key is already associated with an element of this collection
/mark/Loader.asp, line 207
Bifogar subrutinen som genererar felet
Private Sub getData(rawData)
Dim separator
separator = MidB(rawData, 1, InstrB(1, rawData, ChrB(13)) - 1)
Dim lenSeparator
lenSeparator = LenB(separator)
Dim currentPos
currentPos = 1
Dim inStrByte
inStrByte = 1
Dim value, mValue
Dim tempValue
tempValue = ""
While inStrByte > 0
inStrByte = InStrB(currentPos, rawData, separator)
mValue = inStrByte - currentPos
If mValue > 1 Then
value = MidB(rawData, currentPos, mValue)
Dim begPos, endPos, midValue, nValue
Dim intDict
Set intDict = Server.CreateObject("Scripting.Dictionary")
begPos = 1 + InStrB(1, value, ChrB(34))
endPos = InStrB(begPos + 1, value, ChrB(34))
nValue = endPos
Dim nameN
nameN = MidB(value, begPos, endPos - begPos)
Dim nameValue, isValid
isValid = True
If InStrB(1, value, stringToByte("Content-Type")) > 1 Then
begPos = 1 + InStrB(endPos + 1, value, ChrB(34))
endPos = InStrB(begPos + 1, value, ChrB(34))
If endPos = 0 Then
endPos = begPos + 1
isValid = False
End If
midValue = MidB(value, begPos, endPos - begPos)
intDict.Add "FileName", trim(byteToString(midValue))
begPos = 14 + InStrB(endPos + 1, value, stringToByte("Content-Type:"))
endPos = InStrB(begPos, value, ChrB(13))
midValue = MidB(value, begPos, endPos - begPos)
intDict.Add "ContentType", trim(byteToString(midValue))
begPos = endPos + 4
endPos = LenB(value)
nameValue = MidB(value, begPos, ((endPos - begPos) - 1))
Else
nameValue = trim(byteToString(MidB(value, nValue + 5)))
End If
If isValid = True Then
intDict.Add "Value", nameValue
intDict.Add "Name", nameN
dict.Add byteToString(nameN), intDict <--- RAD 207
End If
End If
currentPos = lenSeparator + inStrByte
Wend
End Sub
Någon som har en lösning vart jag skall börja felsöka?
//Mvh, Patrik
Sv: runtime error '800a01c9'
dict.Add byteToString(nameN), intDictSv:runtime error '800a01c9'
Det konstigaste att samma kod har fungerat tidigare, och samma kod fungerar på en annan websida.
//Mvh, PatrikSv: runtime error '800a01c9'
Exempel.....
nameN = "stol"
dict.Add byteToString(nameN), intDict
nameN = "Bord"
dict.Add byteToString(nameN), intDict
nameN = "stol" innehållet stol är redan använt en gång tidigare och därför blir det fel
dict.Add byteToString(nameN), intDict