webForumDet fria alternativet

Date() krånglar

ASP

11 svar · 339 visningar · startad av Havregryn

Medlem sedan juni 200288 inlägg
Frågan#1

Hej!
Jag kör följande kod när man loggar in på min sida:

objConn.Execute("UPDATE tblStatus SET loginPoints=loginPoints+1, loginDate = date() WHERE username = '" & Request.Form("username") & "'")

Problemet är bara att det inte läggs till något värde i databasen när det gäller loginDate. Det fungerar om jag använder Now(), men inte med date(). Jag kör MySQL, och loginDate är av typen date. Vad är det som strular?
:q

Medlem sedan juni 200032 967 inlägg
#2

Jag vet inte om funktionen date() finns i mysql, men du kan ju alltid prova att använda asp-värdet:

objConn.Execute("UPDATE tblStatus SET loginPoints=loginPoints+1, loginDate = '" & date() & "' WHERE username = '" & Request.Form("username") & "'")

Mvh

Medlem sedan juni 200288 inlägg
#3

Tack! Nu fungerar det prima.

Medlem sedan juni 200288 inlägg
#4

Jag tycker ändå att detta är rätt märkligt eftersom det har fungerat att skriva bara date förut (innan allt på min hårddisk raderades)
http://www.webforum.nu/showthread.php?s=&forumid=54&threadid=80907

Och nu funkar det inte...
För när jag skall använda:

If Not rstStatus("loginDate") =   date()   then

objConn.Execute("UPDATE tblStatus SET loginPoints=loginPoints+1, loginDate = '" & date() & "' WHERE username = '" & Request.Form("username") & "'")

End if

Så får jag felet: "Undantag inträffade"... Det är något som inte stämmer här.

Medlem sedan juni 200032 967 inlägg
#5

Vad menar du med att det fungerat med att skriva 'bara date´? Jag tycker den här SQL-frågan ser ut att vara ungefär likadan som den i tråden du länkade till.

Och, SQL-frågan ser det inte ut att vara något fel på. Kan man få se lite kod runtomkring? Är det raden som exekverar update-satsen som felmeddelandet pekar på?

Medlem sedan juni 200288 inlägg
#6

Det är inte SQL-frågan som krånglar, utan if-frågeställningen däröver. Det som gör mig konfunderad är att det har fungerat förut, men nu helt plötsligt slutat att göra det.

Är det datatypen det är ngt fel på, eller vad?

Medlem sedan juni 200032 967 inlägg
#7

Det kan det vara. Man skall alltid se till att man arbetar med rätt subtyper. Prova om detta fungerar bättre:

If Not cdate(rstStatus("loginDate")) =   date()   then

Mvh

Medlem sedan juni 200288 inlägg
#8

Nix, det fungerar inte det heller.
Det blir samma fel, dvs "Undantag inträffade". Vad beror just det felmeddelandet på?

Medlem sedan juni 200032 967 inlägg
#9

Det kan bero på lite vad som helst.

Det råkar inte vara så att recordsetet rstStatus är tomt? Det måste du alltid kontrollera innan du försöker använda data ifrån det.

Mvh

Medlem sedan juni 200288 inlägg
#10

Jo, kanske. Testade att byta ut Date() mot Now() i morse, och jag fick samma fel. Alltså måste felet vara rstStatus("loginDate")...

Vad menar du med att det kan vara tomt?
Innan jag kör det så startar jag rstStatus, och där jag väljer ut alla poster där användarnamn = Request.Form("användarnamn")... så det borde väl fungera?

Medlem sedan juni 200032 967 inlägg
#11

Havregryn skrev:

Vad menar du med att det kan vara tomt?
Innan jag kör det så startar jag rstStatus, och där jag väljer ut alla poster där användarnamn = Request.Form("användarnamn")... så det borde väl fungera?

Om du får 0 poster i resultat på den SQL-frågan så är recordsetet tomt och då blir det fel. Finns det någon post i databasen som stämmer överens med villkoret?

Mvh

Medlem sedan juni 200288 inlägg
#12

Ja, det finns det. Vad kan då vara fel?

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