Går det inte att använda en nolla istället för LBound(MM_fields)?
/r hmm... det dök upp mer kod medan jag skrev mitt svar... men det kanske fungerar ändå?
9 svar · 151 visningar · startad av Jymdis
Vad är det för fel på den här koden?
MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
MM_editAction = MM_editAction & "?" & Request.QueryString
End If
' boolean to abort record edit
MM_abortEdit = false
' query string to execute
MM_editQuery = ""
%>
<%
' *** Insert Record: set variables
If (CStr(Request("MM_insert")) = "form1") Then
MM_editConnection = MM_industri_STRING
MM_editTable = "omforetaget"
MM_editRedirectUrl = ""
MM_fieldsStr = "produktnamn|value|rubrik|value|rubrik_eng|value|bild|value|bildstor|value|bildhojd|value|bildbredd|value|prospekt|value|prospekt_eng|value|text|value|text_eng|value|currentlevel|value|parentlevel|value|senastuppdaterad|value"
MM_columnsStr = "produktnamn|',none,''|rubrik|',none,''|rubrik_eng|',none,''|bild|',none,''|bildstor|',none,''|bildhojd|',none,''|bildbredd|',none,''|prospekt|',none,''|prospekt_eng|',none,''|loptext|',none,''|loptext_eng|',none,''|currentlevel|',none,''|parentlevel|',none,''|senastuppdaterad|',none,''"
' create the MM_fields and MM_columns arrays
MM_fields = Split(MM_fieldsStr, "|")
MM_columns = Split(MM_columnsStr, "|")
' set the form values
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
Next
' append the query string to the redirect URL
If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
End If
End If
End If
%>
<%
' *** Insert Record: construct a sql insert statement and execute it
Dim MM_tableValues
Dim MM_dbValues
If (CStr(Request("MM_insert")) <> "") Then
' create the sql insert statement
MM_tableValues = ""
MM_dbValues = ""
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_formVal = MM_fields(MM_i+1)
MM_typeArray = Split(MM_columns(MM_i+1),",")
MM_delim = MM_typeArray(0)
If (MM_delim = "none") Then MM_delim = ""
MM_altVal = MM_typeArray(1)
If (MM_altVal = "none") Then MM_altVal = ""
MM_emptyVal = MM_typeArray(2)
If (MM_emptyVal = "none") Then MM_emptyVal = ""
If (MM_formVal = "") Then
MM_formVal = MM_emptyVal
Else
If (MM_altVal <> "") Then
MM_formVal = MM_altVal
ElseIf (MM_delim = "'") Then ' escape quotes
MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
Else
MM_formVal = MM_delim + MM_formVal + MM_delim
End If
End If
If (MM_i <> LBound(MM_fields)) Then
MM_tableValues = MM_tableValues & ","
MM_dbValues = MM_dbValues & ","
End If
MM_tableValues = MM_tableValues & MM_columns(MM_i)
MM_dbValues = MM_dbValues & MM_formVal
Next
MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"
Jag får felmeddelandet:
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'LBound'
/industri/admin/omforetaget/new.asp, line 81
Rad 81 är
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
Går det inte att använda en nolla istället för LBound(MM_fields)?
/r hmm... det dök upp mer kod medan jag skrev mitt svar... men det kanske fungerar ändå?
nej..
då får jag fel
Microsoft VBScript runtime error '800a000d'
Type mismatch: 'UBound'
/industri/admin/omforetaget/new.asp, line 81
Du kanske måste ta och Dim MM_fields()?
eller...
For MM_i = LBound(MM_fields) + 1 To UBound(MM_fields) - 1 Step 2
Jag vet inte riktigt, men det är nog en bra ide i vilket fall.
nej det måste vara nåt problem med att den inte kan splita
MM_fieldsStr = " produktnamn|value|rubrik|value|rubrik_eng|value|bild|value|b
ildstor|value|bildhojd|value|bildbredd|value|prospekt|value|
prospekt_eng|value|text|value|text_eng|value|currentlevel|va
lue|parentlevel|value|senastuppdaterad|value"
för att det finns fält som har _ i sig.. kan det stämma?
/red fast ändå inte
förstår verkligne inte vad problemet är..
har en likvärdig sida med 3 mindre fält som fungerar hur bra som helst..
Kanske det... jag kommer just ihåg något om _ och |, men jag vet inte vilken tråd det var jag läste det i.
Testa Replace:a dom tecknen mot något annat och se om det fungerar bättre.
jag försökte ta bort dom helt men det fungera inte..
Jag testade nyss splitta en sträng som innehöll '_' med '|' och det gick alldeles utmärkt...
Jag kommer inte på vad det kan vara för något som bråkar... tyvärr
Asså jag blir riktigt jävla förbannad..
jag har två exakt likadana sidor med exakt samma kod, varav en uppdaterar tabellen omforetaget som har exakt samma struktur men inte data som tabellen produkter har och möget vill bara inte fungera...
Gjorde om hela sidan.
Möget fundera då.