webForumDet fria alternativet
Logga in / Bli medlem

problem...

ASP

2 svar · 141 visningar · startad av tronez

Medlem sedan juli 2001728 inlägg
Trådstart#1

Jag har ett litet problem med den här koden:

<%

	Set Connect = Server.CreateObject("ADODB.Connection")
    Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("db/data.mdb")&""
	
	SQL = "SELECT * FROM user_info WHERE email = '" & Request.Form("email") & "'"
	Set RecSet = Connect.Execute(SQL)

user = RecSet("user")
losen = RecSet("losen")
email = Request.Form("email")

If Not RecSet.EOF then

	Set Mail= Server.CreateObject("CDonts.Newmail")
	Mail.subject = "Lösenord"
	Mail.to = email
	Mail.from = "info@trones2002.tk"
	Mail.Subject = "Användaruppgifter"
	Mail.body = "Ditt användarnamn: " & user & vbcrlf & "Lösenord: " & losen & vbcrlf & vbcrlf & "Varsågod, här kommer dina beställda användaruppgifter"

Mail.Send
Set Mail = Nothing

Response.Redirect "sending.asp?to="&Request.Form("email")&""

else
Response.Redirect "error6.asp"	
End If

Connect.Close
Set Connect = Nothing
Set RecSet = Nothing
%>

Jag får felmeddelandet:

Error Type:
ADODB.Field (0x800A0BCD)
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
/test/skicka_losen.asp, line 17

Det går att skicka meddelandet när det finns en användare som har en email adress som ligger i databasen, men det blir error när det inte finns, vad är det för fel?

Medlem sedan mars 20002 836 inlägg
#2

Du försöker att använda ett tomt recordset.

Kika på raderna innan din check: If Not RecSet.EOF

där använder du så att säga recordsetet INNAN du kollat om det är tomt.

Flytta in dessa rader i If-satsen så funkar det.

cya,
PatrikB

Medlem sedan juli 2001728 inlägg
#3

Ahhh.... nu funkar det =)
Man tackar för det snabba svaret PatrikB

264 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)