Microsoft VBScript runtime error '800a000d'
Type mismatch
/registration/saveMember.asp, line 7
hittar inte felet med denna kod, det har fungerat tidigare när communityt hade ett annat namn, rad 7 är fetmarkerad
<%varUsername=Request.Querystring("an")
set rs=objConn.execute("SELECT count(username) as cUsername FROM tblUsers WHERE username = '"& varUsername &"'")
[B]If rs("cUsername") => 1 Then[/B]
response.redirect "/Registration/reg-form.asp?err=double"
else
varUsername = FriendlySQL(Request.Querystring ("an"))
varPassword = Request.Querystring ("lo")
varFornamn= FriendlySQL(Request.Querystring ("fn"))
varEfternamn= FriendlySQL(Request.Querystring ("en"))
varCommunity = FriendlySQL(request.form("txtCommunity"))
varCity = FriendlySQL(Request.Form ("underKommun"))
varSex = FriendlySQL(Request.Querystring ("sex"))
varRegDate = now()
varWebsite = FriendlySQL(Request.Form ("h"))
varEmail = FriendlySQL(Request.Form ("ep"))
varPersonnr = FriendlySQL(Request.Querystring ("pn"))
varRID = FriendlySQL(Request.Querystring ("rID"))
'varPres= FriendlySQL(Request.Form("txtPres"))
'varTips= FriendlySQL(Request.Form("txtTipsadAv"))
LedelMedlem sedan dec. 2004736 inlägg If CLng(rs("cUsername")) >= 1 Then
Om jag inte minns ASP fel är väl alltid data från ett recordset av datatypen string? Därmed kan den inte jämföras som integer. Lägg sedan märke till >=, då det heter större eller lika med och därmed bör skrivas i den ordningen.
det hjälpte inte och det lustiga är att den koden funkade perfekt förra gången, har inte gjort några ändringar heller
får mismatch även på en annan sida, finns det nån gemensam nämnare mellan dessa två koddelar????
strHost = Request.ServerVariables("REMOTE_HOST")
strAddress = Request.ServerVariables("REMOTE_ADDR")
nowDate = Now()
strReferer = Request.ServerVariables("HTTP_REFERER")
set objConn = connect()
strSQL = "select count(*) from tblStats where Address = '" & strAddress & "'"
set rsResults = objConn.Execute( strSQL )
[B]If rsResults( 0 ) = 0 Then[/B]
count = "INSERT INTO tblStats"
count = count & "(Host, Address, countDate,Visits,Referer) "
count = count & "VALUES('"& strHost &"','"& strAddress &"','" & nowDate & "',1,'" & strReferer & "')"
objConn.Execute count
else
update="UPDATE tblStats SET Visits=Visits + 1 WHERE Address='"&strAddress&"'"
objConn.Execute update
End If
<%varUsername=Request.Querystring("an")
set rs=objConn.execute("SELECT count(username) as cUsername FROM tblUsers WHERE username = '"& varUsername &"'")
[B]If rs("cUsername") => 1 Then[/B]
response.redirect "/Registration/reg-form.asp?err=double"
else
varUsername = FriendlySQL(Request.Querystring ("an"))
varPassword = Request.Querystring ("lo")
varFornamn= FriendlySQL(Request.Querystring ("fn"))
varEfternamn= FriendlySQL(Request.Querystring ("en"))
varCommunity = FriendlySQL(request.form("txtCommunity"))
varCity = FriendlySQL(Request.Form ("underKommun"))
varSex = FriendlySQL(Request.Querystring ("sex"))
varRegDate = now()
varWebsite = FriendlySQL(Request.Form ("h"))
varEmail = FriendlySQL(Request.Form ("ep"))
varPersonnr = FriendlySQL(Request.Querystring ("pn"))
varRID = FriendlySQL(Request.Querystring ("rID"))
'varPres= FriendlySQL(Request.Form("txtPres"))
'varTips= FriendlySQL(Request.Form("txtTipsadAv"))
@ndersMedlem sedan juni 200032 969 inlägg Men alltså.
- Typkonvertera innan du jämför med tal!
- Som Ledel skriver, det ska vara >=, inte =>!!!
Fungerar det verkligen inte när du gör bägge dessa förändringar? Oerhört konstigt.
@ndersMedlem sedan juni 200032 969 inlägg
Ledel skrev:
Om jag inte minns ASP fel är väl alltid data från ett recordset av datatypen string?
Njä, inte riktigt sant. Om man har tur fungerar det utan att typkonvertera, det kan bero lite på vilken dbms / drivrutin man använder hur datat returneras.
Men att skriva kod som måste ha tur för att fungera - det suger. Alltid typkonvertera om det finns risk att typer inte stämmer.
@nders skrev:
Men alltså.
- Typkonvertera innan du jämför med tal!
- Som Ledel skriver, det ska vara >=, inte =>!!!
Fungerar det verkligen inte när du gör bägge dessa förändringar? Oerhört konstigt.
jag fick det inte att fungera iaf
jag skriver
If rs("cUsername") >= 1 Then
lägger upp den på servern, sparar och uppdaterar sidan och det blir ingen förändring
@ndersMedlem sedan juni 200032 969 inlägg Typkonvertera, typkonvertera, typkonvertera.
Jag har en känsla av att du inte läser vad vi skriver.
drewMedlem sedan mars 2007845 inlägg
@nders skrev:
Typkonvertera, typkonvertera, typkonvertera.
Jag har en känsla av att du inte läser vad vi skriver.
Jag har en känsla av att någon borde skriva ett exempel på hur han ska typkonvertera. Som
$int_var = intval($str);
fast det är inte ASP.
drew skrev:
Jag har en känsla av att någon borde skriva ett exempel på hur han ska typkonvertera. Som
$int_var = intval($str);
fast det är inte ASP.
jag är inte bra på att typkonvertera direkt så jag vore tacksam om nån visade hur jag skriver det i asp så kan jag lära mig ngt nytt
LedelMedlem sedan dec. 2004736 inlägg
Ledel skrev:
CLng(rs("cUsername"))
CLng(s) konverterar s till ett tal (long för att vara exakt) och ska därmed bli jämförbart med ett tal.
Edit: Vad jag menade med mitt första inlägg är att du skall byta ut din if-sats mot den jag skrev och testa med den.
dAEkMedlem sedan feb. 20041 816 inlägg Hoppas att detta tas på rätt sätt...
Är det inte jävligt frustrerande att få sådana här eller liknande (nybörjar)fel och inte se vad som är fel? Går man tillbaks i tiden via sökfunktionen kan man se att du har haft problem med type mismatch så långt bak som runt år 2004/2005. Idag är det 2009. Tålamod har du inte brist på iaf. Om jag var du hade jag blivit tokig för länge, länge sedan! ;)
Ta dig tid och labba lite eller använd befintlig kod. Försök förstå vad som blir fel och varför. Ha alltid dokumentation och API till hands när du utvecklar.
jag misstänkte att det var det, har använt det tidigare men det var länge sen och kom inte på exakt vad det hette, tack så enormt mycket för din hjälp
på det andra stället ändrades raden för felmeddelandet efter typkonverteringen och där är det fortfarande type mismatch, har försökt att hitta felet men jag har inte lyckats
If CLng(rsResults( 0 )) = 0 Then
count = "INSERT INTO tblStats"
count = count & "(Host, Address, countDate,Visits,Referer) "
[B]count = count & "VALUES('"& strHost &"','"& strAddress &"','" & nowDate & "',1,'" & strReferer & "')"[/B]
objConn.Execute count
else
update="UPDATE tblStats SET Visits=Visits + 1 WHERE Address='"&strAddress&"'"
rille77Medlem sedan feb. 200476 inlägg Du måste kolla så att rsResults(0) verkligen innehåller nåt som kan konverteras till ett tal.
Null kan t.ex. inte konverteras till ett tal.
testade även om jag får EOF på den men det gjorde ingen skillnad, får jag EOF ska en ny post in, är det samma så dator så ska posten bara uppdateras med ett nytt besök
@ndersMedlem sedan juni 200032 969 inlägg
WebbisNet skrev:
jag är inte bra på att typkonvertera direkt så jag vore tacksam om nån visade hur jag skriver det i asp så kan jag lära mig ngt nytt
Du kanske inte är bra på det, men i det här fallet räcker det ju med att läsa vad vi skriver. Ledel har ju skrivit exakt vad som ska göras - det räcker för dig att läsa vad han skrivit och testa precis vad han skrivit. Det hade besparat mig en del frustration i alla fall. Det är jobbigt att hjälpa när man inte möts...
Over and out. Igen.
ska försöka lösa det själv utan att be om mer hjälp
verkar inte som om man kan radera sitt konto här så jag får låta det bli inaktivt
@ndersMedlem sedan juni 200032 969 inlägg Missförstå icke - klart man ska be om hjälp! :)
Och läsa svaren ordentligt - annars är det helt enkelt inte givande att hjälpa. Hoppas du förstår vad jag menar. :)
jag ska klara det utan hjälp , är inte lönt att fråga längre