webForumDet fria alternativet
Logga in / Bli medlem

type mismatch

ASP

2 svar · 190 visningar · startad av mrblonde

Medlem sedan aug. 20012 349 inlägg
Trådstart#1

Förstår inte varför det inte fungerar.

Har skrivit ut alla variabler och kollat att de är rätt. Har skrivit ut och kollat så att de som är strängar är strängar och att de som skall vara long är long.

har kollat att objektet heter rätt osv osv... Kan någon ge mig någon idé på vad som är fel.

Sänder med objektets kod med, men de kommer aldrig in i objektet, det har jag kollat genom att sätta en braekpoint det första som händer i objektet, och dit kommer den aldrig.

felkod:

Error Type:
Microsoft VBScript runtime (0x800A000D)
Type mismatch: 'SaveItem'
/SRS_Local/admin/list/edit.asp, line 58

Min kod i ASP.

Dim objItem, liid, mode, id, listid
Set objItem = Server.CreateObject("SRS.ListItem")

listid = Clng(Request("listid"))

If Len(Request("liid")) = 0 Then
	liid = -1
Else
	liid = CLng(Request("liid"))
End If

mode = Request("mode")

If mode = "edit" Then
	Dim dic
	Set dic = Server.CreateObject("Scripting.Dictionary")
	dic.CompareMode = 2
	
	dic("liname") = Request.Form("liname")
	dic("libody") = Request.Form("libody")
	dic("liimageid") = Request.Form("liimageid")
	
	
	id = objItem.SaveItem(listid, liid, dic) 
	Set dic = Nothing
	Set objItem = Nothing

min kod i objektet:

Public Function SaveItem(ByVal lListId As Long, _
    ByVal lItemId As Long, _
    dic As Scripting.Dictionary) As Long
    
    On Error GoTo errorHandler
    
    Dim sql As String, rs As ADODB.Recordset, k As Variant
    
    sql = "SELECT * FROM tblListItem WHERE lilistid = " & lListId & " liid = " & lItemId
    
    Set rs = GetRecordset(sql, False)
    
    If rs.EOF Then
        rs.AddNew
        rs("liorder") = GetOrderNumber(lListId)
    End If
    
    For Each k In dic.Keys
        rs(k) = dic(k)
    Next k
    rs("lilistid") = lListId
    
    SaveItem = SaveRecordset(rs, "liid")
    
    Set rs = Nothing
    
    CtxSetComplete
    Exit Function
    
errorHandler:
    Set rs = Nothing
    HandleError g_modName, "SaveItem"
End Function
Medlem sedan aug. 20012 349 inlägg
#2

löste det själv.
glömde ett "ByVal" i min COM function.
(plus ett "AND" i min sql fråga, men det felet kom ju sen)

:)

Medlem sedan maj 200010 687 inlägg
#3

:r
Det var visst jag som missat ByVal i VB-komponenten..

Men det är ändå ganska kul att varken jag eller mrblonde hittade felet. Vi var tvungna att kalla på El Chefo som hittade det direkt. :)

282 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
148 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)