Jag har problem med att ASP-koden jag kör lokalt på min iis inte funkar på webbhotellet. De har samma version av scriptmotorn (iallafall enligt asp-koden Scriptenginemajorversion och Scriptengineminorversion).
Och det är inte mycket som strular, men vissa saker.
T ex denna funktion:
Function getBeginStr (psStr, pnLen )
if Len(psStr)>pnLen then
getBeginStr = Mid(psStr,1,pnLen) & "..."
else
getBeginStr = psStr
end if
End Function
OBS - detta är bara ETT exempel.
Vad är problemet?
Ska jag behöva anpassa koden för servern?
Någon som råkat ut för samma sak eller vet vad man kan göra?
Denna funktionen funkar:
Function getBeginStr (psStr, pnLen )
Dim sStr
sStr = psStr
if Len(sStr) > pnLen then
getBeginStr = Mid(sStr,1,pnLen) & "..."
else
getBeginStr = sStr
end if
End Function
När jag först tilldelar en variabel värdet och sedan jobbar med det funkar det bättre. Det som jag anropar funktionen med är ett recordset-fält/kolumn.
Borde jag inte kunna jobba med den som med en sträng?
Jag tilldelar ju inte den något värde, utan använder det ju endast som in-parameter till funktionen/funktionerna.
Testa att ange hur variablerna ska hanteras; som värdetyper eller referenser.
En ganska ogrundad teori är att psStr och pnLen tolkas som referenser iom du justerar dem direkt i funktionen. Iom detta kanske ASP tolkar hela metoden som en procedur i stället för funktion och därför inte returnerar något värde (utan endast ändrar värdena på psStr och pnLen).
Ändra funktionen till något i stil med:
Function getBeginStr ([B]ByVal [/B] psStr, [B]ByVal [/B] pnLen )
f Len(psStr) > pnLen then
getBeginStr = Mid(psStr,1,pnLen) & "..."
else
getBeginStr = psStr
end if
End Function
Detta är som sagt en väldigt diffus teori och ni är varmt välkomna att såga den ;-)
Ja jag testade detta, men det funkade tyvärr inte.
Men jag får vara ganska nöjd med lösningen jag har tror jag.
Men det är skumt att det funkar bra lokalt men inte på servern.
Samma scriptmotor-version å så. Hm...
Tack för hjälpen iallafall. :)
Denkan skrev:
Testa att ange hur variablerna ska hanteras; som värdetyper eller referenser.
En ganska ogrundad teori är att psStr och pnLen tolkas som referenser iom du justerar dem direkt i funktionen. Iom detta kanske ASP tolkar hela metoden som en procedur i stället för funktion och därför inte returnerar något värde (utan endast ändrar värdena på psStr och pnLen).
Ändra funktionen till något i stil med:
Function getBeginStr ([B]ByVal [/B] psStr, [B]ByVal [/B] pnLen )
f Len(psStr) > pnLen then
getBeginStr = Mid(psStr,1,pnLen) & "..."
else
getBeginStr = psStr
end if
End Function
Detta är som sagt en väldigt diffus teori och ni är varmt välkomna att såga den ;-)
288 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e