webForumDet fria alternativet

type mismatch

2 svar · 190 visningar · startad av mrblonde

mrblondeMedlem sedan aug. 20012 349 inlägg
#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

------------------
National Blonde Day!
"Yeah, bam, bam, bam, bam, bam. I told 'em not to touch the alarm"

mrblondeMedlem 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)

:)

------------------
National Blonde Day!
"Yeah, bam, bam, bam, bam, bam. I told 'em not to touch the alarm"

Erik JuhlinMedlem 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. :)

------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/

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