webForumDet fria alternativet

Not allowed when object is closed

ASPur ASP

9 svar · 278 visningar · startad av SteveP

Medlem sedan mars 2003772 inlägg
Frågan#1
		email = request.Form("emailadress")
		val = request.Form("Registrera")
		
		If Request.Form("Registrera") = "AvRegistrera" then
		Sqldel = "Delete from DollsNyhetsbrev where email = '" & email & "'"
		Set RsReg = Connect.execute(Sqldel)
		[b]If RsReg.EOF then[/b]
		
		Tom = True
		Else
		Tom = False
		
		End If
		End if

Får felet Operation is not allowed when the object is closed.

Medlem sedan mars 20023 561 inlägg
#2

Hur ser Connect ut?

Medlem sedan mars 2003772 inlägg
#3

Connect är det inget fel på. Jag kör massa Connect.execute(blabla) på samma sida ovan och till andra sidor.

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={SQL Server}; Provider=SQLOLEDB.1;Persist Security Info=False;User ID="";Pwd="";Data Source="""
Medlem sedan mars 20023 561 inlägg
#4

Tror inte du får tillbaka någonting du kan använda så när du kör delete-statements.

Du får nog isåfall först köra en select för att se om det finns någonting att ta bort och isåfall göra det, annars inte.

Detta är en ren chansning, men du kan ju prova.

Medlem sedan juni 200032 967 inlägg
#5

Nej, man får inte tillbaka något från INSERT/UPDATE/DELETE. Istället för:

		Set RsReg = Connect.execute(Sqldel)
		If RsReg.EOF then
		
		Tom = True
		Else
		Tom = False
		
		End If

Gör så här:

		Connect.execute Sqldel, rowsaffected, 128
		If rowsaffected = 0 then
		
		Tom = True
		Else
		Tom = False
		
		End If

Mvh

Medlem sedan mars 20023 561 inlägg
#6

Så kan man ju också göra. Tänkte inte på det. :r

Medlem sedan mars 2003772 inlägg
#7

Utmärkt lösning!
Har inte använt mig av rowsaffected förut.

Tack!

Medlem sedan mars 2003772 inlägg
#8

Hur hade jag gjort om det gällde ett Insert Satement där jag ville kolla ifall posten redan är inlagd? Får jag skapa ett "select" statement först och sen om EOF = true så kör jag Inserten? Eller finns det nåt liknande som rowsaffected?

Medlem sedan juni 200032 967 inlägg
#9

SteveP skrev:

Hur hade jag gjort om det gällde ett Insert Satement där jag ville kolla ifall posten redan är inlagd? Får jag skapa ett "select" statement först och sen om EOF = true så kör jag Inserten?

Det är det enda sättet jag kan komma på.

Mvh,

Medlem sedan dec. 20003 887 inlägg
#10

Antingen ett select eller en update, och kolla om rowsaffected är större än 0. En update kan dock ta längre tid om fältet är indexerat och du kör Access, men tidsskillnaden är nog försumbar.

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