webForumDet fria alternativet

arkivering och borttagning av poster

8 svar · 253 visningar · startad av LR^evil.sid

LR^evil.sidMedlem sedan maj 2002560 inlägg
#1

Tjena! Jag tänkte göra en arkiveringsprocedur men har kört fast. Frågar därför er om ni har någon lösning och om min tanke är rätt angående proceduren.

sql = "select count(*) from tabell"
Set rs = con.Execute(sql)

If Int(rs(0) - 100) > 0 Then
	sql = "insert into arkiv select * from tabell order by id desc limit "&rs(0) - 100
	Set rs = con.execute(sql)
[b]line 27[/b]	While Not rs.eof
		sql = "delete from tabell where id = "&rs(0)
		con.execute(sql)
		rs.MoveNext
	WEnd
End If

Felmeddelande

ADODB.Recordset fel '800a0e78' 
Åtgärden är inte tillåten när objektet är stängt. 
/pagin/index.asp, line 27
SebbeMedlem sedan jan. 20032 285 inlägg
#2

Det här borde nog gå bättre:

sql = "select count(*) from tabell"
Set rs = con.Execute(sql)

If Int(rs(0) - 100) > 0 Then
	sql = "insert into arkiv select * from tabell order by id desc limit "&rs(0) - 100
	con.execute(sql)

	Set rs2 = con.execute("select * from tabell order by id desc limit "&rs(0) - 100)
	While Not rs2.eof
		sql = "delete from tabell where id = "&rs2("id")
		con.execute(sql)
		rs.MoveNext
	WEnd
End If

Testas på egen risk! ;)

LR^evil.sidMedlem sedan maj 2002560 inlägg
#3

Jag måsta alltså använda två recordset för att göra detta?

SebbeMedlem sedan jan. 20032 285 inlägg
#4

Eftersom jag inte riktigt fattar vad du ska göra vet jag inte, men när jag kollade på din kod såg det ut som om det var sådär du ville göra det. :)

LR^evil.sidMedlem sedan maj 2002560 inlägg
#5

Hoppsan! Måste varit trött när jag skrev denna fråga.

Vad jag vill göra är att plocka ut alla poster efter de första hundra, placera dem i en annan tabell och sedan ta bort posterna från ursprungstabellen.

SebbeMedlem sedan jan. 20032 285 inlägg
#6

Funkar koden jag skrev innan eller är det något fel i den? (Skulle vara bra att veta om man ska skriva om den ;))

LR^evil.sidMedlem sedan maj 2002560 inlägg
#7

Jo, visst fungerar den. Jag tänkte bara om det gick att göra det utan två recordset eftersom du i insert into redan skrivit select * from

SebbeMedlem sedan jan. 20032 285 inlägg
#8

LR^evil.sid skrev:

Jo, visst fungerar den. Jag tänkte bara om det gick att göra det utan två recordset eftersom du i insert into redan skrivit select * from

Jo, men det är en "version" av INSERT INTO, inte en SELECT-sats. :)

LR^evil.sidMedlem sedan maj 2002560 inlägg
#9

Ok, tack för hjälpen.

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