webForumDet fria alternativet

Type mismatch

ASPur ASP

18 svar · 439 visningar · startad av Insider

Medlem sedan jan. 2000978 inlägg
Frågan#1

Denna koden ger ett felmeddelande.

<%datum=FormatDateTime(Dateadd("h",1,InDate & " " & Left(Time,2) & ":00"),vbShortDate)
response.write(datum)%>

Felmeddelande:
Microsoft VBScript runtime error '800a000d'

Type mismatch: '[string: "10/10/2003 4::00"]'

/Bokning/Index.asp, line 182

Det har funkat tidigare, men helt plötsligt kom detta fel.
Varför??

Medlem sedan dec. 20003 887 inlägg
#2

Hur ser InDate ut?

Medlem sedan jan. 2000978 inlägg
#3

InDate = Date()

Medlem sedan jan. 2000978 inlägg
#4

Alltså: "10/10/2003"

Medlem sedan jan. 2000978 inlägg
#5

Tar jag bort kolonet i ":00" i min kod så får jag svaret:
12/30/1899

...och inget felmeddelande.

Det måste ha hänt nåt med servern.

Medlem sedan juni 200032 969 inlägg
#6

Man skall icke använda strängfunktioner för att ta ut delar av datum eller tid, utan man skall använda de datum-/tidfunktioner som finns att tillgå. Får man gissa på att Left(Time,2) är tänkt att returnera timmar? Du kan inte vara säker på att det är ett visst antal tecken i en datum- eller tidsträng, det beror ju helt och hållet på vilka regionala inställningar maskinen har. Använd Hour(Time) istället.

Medlem sedan jan. 2000978 inlägg
#7

OK, så beror det på att de regionala inställningarna på servern ändrats??? (till amerikansk tid)

Medlem sedan juni 200032 969 inlägg
#8

Jag förstår inte riktigt heller vad du vill göra.

Kan du beskriva i ord exakt vad du vill ska hända?

Medlem sedan juni 200032 969 inlägg
#9

Insider skrev:

OK, så beror det på att de regionala inställningarna på servern ändrats??? (till amerikansk tid)

Ja, det är inte omöjligt. Till och med troligt.

Medlem sedan jan. 2000978 inlägg
#10

Nej, dom hade inte ändrtats...det är svensk tid och sverige är valt.

Medlem sedan juni 200032 969 inlägg
#11

@nders skrev:

Man skall icke använda strängfunktioner för att ta ut delar av datum eller tid, utan man skall använda de datum-/tidfunktioner som finns att tillgå. Får man gissa på att Left(Time,2) är tänkt att returnera timmar?

..

Använd Hour(Time) istället.

Medlem sedan jan. 2000978 inlägg
#12

Det är en applikation som ett konsultföretag skapat. Jag har inte lusläst koden, men raden ska ta fram dagens datum å tid.

Efter att ha testat applikationen på en annan maskin funkade allting oavsett om det var svensk eller amerikansk tid...

Medlem sedan jan. 2000978 inlägg
#13

Men det är alltså ingen lösning eftersom vi inte kan flytta den dit :(
Jag fattar inte hur det bara kan sluta funka... :q

Koden jag bifogade har jag förstått ska ta fram dagens datum i ett visst format. (Eller blir det kanske morgondagens??)

(Jag har redigerat mitt felmeddelande högst upp, missade en sak förut)

Medlem sedan jan. 2000978 inlägg
#14

Jag kan vara lösningen på spåren:

Problemet verkar vara att Time visar tid i amerikanskt format. Detta gör att det blir ett extra kolon i resultat-strängen, eftersom Left()-funktionen tar 2 tecken från vänster och får med ett kolon från 5:07.

Tydligen har detta funkat tidigare utan problem. Kan man ställa in på nåt sätt att Time ska returnera 17:07 istället för 5:07? (nån annanstans än i koden alltså)

Det har nämligen installerats en serverprogramvara på server-burken och då kanske nånting ändrades....

Medlem sedan juni 20022 599 inlägg
#15

Hur defaultformatet ser ut om ingen LCID är angiven i koden är lite av en djungel:

http://support.microsoft.com/default.aspx?kbid=306044

I övrigt får man ju hoppas att samma "konsultföretag" inte skriver flygledarsystem:

on error resume next
if Datediff('n', left(rc("Ankomsttid"), 5), left(Time , 5) ) > 5 then ..
..

(Iaf om man vill våga flyga innan 10 på morronen.)

Medlem sedan jan. 2000978 inlägg
#16

Problemet försvann när admin loggade in på servern (konsollen) och förblev inloggad. Det funkade inte när ingen var inloggad. Men detta är ju ingen lösning egentligen...

Medlem sedan juni 200032 969 inlägg
#17

Varför inte lösa problemet på rätt sätt, dvs använda de datum- och tidfunktioner som finns :q

Medlem sedan jan. 2000978 inlägg
#18

Jo, det kan man fråga sig. Men man vill ju inte sitta och ändra i koden som dom har skrivit, med risk för att röra till det hela. Men i länken som niko skickade med så beskrevs ju problemet, det går kanske att lösa det permanent på nåt sätt..

Medlem sedan juni 200032 969 inlägg
#19

Insider skrev:

Men man vill ju inte sitta och ändra i koden som dom har skrivit, med risk för att röra till det hela.

Helt sant. Jag tycker ändå att de är klåpare. ;)

Mvh

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