webForumDet fria alternativet

En av objektets standardegenskaper kan inte hittas

ASP

7 svar · 297 visningar · startad av Peeer

Medlem sedan mars 20025 907 inlägg
Frågan#1
strSQL = "SELECT nick FROM t_user WHERE nick = '" & Replace(request.form("nick"), "'", "''") &"'"
connect.open db
Set objRS = connect.Execute(strSQL)
'## -- Spara användaren --
If objRS.EOF then
strSQL = "INSERT INTO t_user (nick, pass, mail) VALUES ('" & Replace(request.form("nick"), "'", "''") &"', '" & Replace(request.form("pass1"), "'", "''") &"', '" & Replace(request.form("mail"), "'", "''") &"')"
connect.Execute(strSQL)
strSQL = "SELECT ID FROM t_user WHERE nick = '" & Replace(request.form("nick"), "'", "''") &"'"
id = connect.Execute(strSQL)
connect.Close
Else
connect.Close
Response.redirect "Default.asp?do=create&err=username"
end if
Response.write id

IIS skrev:

Feltyp:
Response-objekt, ASP 0185 (0x8002000E)
En av objektets standardegenskaper kan inte hittas.
/admin/create_user.asp

Vad göra?
Kan jag minska antalet databasläsningar på något sätt?

Medlem sedan dec. 200012 464 inlägg
#2

På vilken rad får du fel?

För att minska antalet databasanrop

Sätt ett unique constraint på kolumnen nick. (Det behövs även om du gör kontrollen.)

on error resume next
connect.execute "insert ...."
on error goto 0

if err then

Varför vill du skriva ut id-numret? Det är ju nick som är relevant.

Medlem sedan mars 20025 907 inlägg
#3

Det stog inte på vilken rad felet var, jag postade hela felmeddelandet. Det konstiga är att felmeddelandet bara kommer när man ska skriva ut variabeln "id". Tar jag bort Response.write id, så blir det inte fel.

ID-nummret skulle jag ha i steg 2 (när man ska bestämma behörigheten för användaren), men nu när du säger det så kom jag på att det går precis lika bra med nicknamet (som man kan ta från querystringen). Tror det börjar bli för sent för min trötta hjärna nu. :)

Tackar & bockar! :D

Medlem sedan sep. 2002366 inlägg
#4

Du har ju stängt databasen när du skriver ut id..

Medlem sedan mars 20025 907 inlägg
#5

Eitraz skrev:

Du har ju stängt databasen när du skriver ut id..

Ja, men värdet ligger ju lagrat i variabeln "id" (eller?). Den ska väl inte tappa sin information bara för att man stänger databasen??

Medlem sedan sep. 2002366 inlägg
#6

strSQL = "SELECT ID FROM t_user WHERE nick = '" & Replace(request.form("nick"), "'", "''") &"'"
id = connect.Execute(strSQL)

Id är alltså en bit av databasen.. även om den bara innehåller ID..
Har inte testat det här men jag undrar om datorn fattar det ;)

-Eitraz

Medlem sedan dec. 200012 464 inlägg
#7
strSQL = "SELECT ID FROM t_user WHERE nick = '" & Replace(request.form("nick"), "'", "''") &"'"
set objrs = connect.Execute(strSQL)
id = objrs(0)
Medlem sedan mars 20025 907 inlägg
#8

SQL-kungen har talat!! :D

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