webForumDet fria alternativet

problem med lbound/dreamweaver

9 svar · 151 visningar · startad av Jymdis

JymdisMedlem sedan mars 20016 260 inlägg
#1

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
Engine^Medlem sedan dec. 20003 887 inlägg
#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å?

JymdisMedlem sedan mars 20016 260 inlägg
#3

nej..
då får jag fel

Microsoft VBScript runtime error '800a000d' 

Type mismatch: 'UBound' 

/industri/admin/omforetaget/new.asp, line 81
Engine^Medlem sedan dec. 20003 887 inlägg
#4

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.

JymdisMedlem sedan mars 20016 260 inlägg
#5

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..

Engine^Medlem sedan dec. 20003 887 inlägg
#6

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.

JymdisMedlem sedan mars 20016 260 inlägg
#7

jag försökte ta bort dom helt men det fungera inte..

Engine^Medlem sedan dec. 20003 887 inlägg
#8

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

JymdisMedlem sedan mars 20016 260 inlägg
#9

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...

JymdisMedlem sedan mars 20016 260 inlägg
#10

Gjorde om hela sidan.
Möget fundera då.

135 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)