---
title: "Hur fungerar RecSet?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/130692-hur-fungerar-recset"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Jiggr"
published: "2005-06-28T11:50:05.000Z"
updated: "2005-06-28T12:46:44.000Z"
replies: 19
views: 608
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/130692-hur-fungerar-recset"
---

# Hur fungerar RecSet?

## #1 — Jiggr, 2005-06-28T11:50Z

Om man skapar ett RecSet... typ:

```
Set RS = Connection.Execute("SELECT * FROM table")
```

Sen kör man följande kommandon på den

```
RS.MoveNext
RS.MoveNext
RS.MoveNext
```

Sen tar man bort nästa rad som RS kommer till, tex:

```
Connection.Execute("DELETE FROM table WHERE id = x")
```

Vad kommer då hända om man efter denna kör

```
RS.MoveNext
Response.write(RS("id") & RS("textmeddelande"))
```

Vi får anta att kolumnerna som finns i tabellen table är id och textmeddelande.

Kommer ett felmeddelande returneras eller hoppas den över denna helt enkelt? Eller har jag missuppfattat något?

Kan inte testa själv då jag inget har att testa på för tillfället.

Permalänk: https://www.webforum.nu/p/130692

## #2 — joel_joel88, 2005-06-28T12:02Z

Välkommen till Webforum!

Jag fattar inte riktigt vad du menar.  Varför skriva så här

> RS.MoveNext
> RS.MoveNext
> RS.MoveNext

Tre gånger? Då kommer du få ett felmeddelande

Så här ska det vara om du ska göra det rätt.

```
set rs = connect.execute("select * from table")

do until rs.eof

Response.write(RS("id") & RS("textmeddelande"))

rs.movenext
loop
```

Permalänk: https://www.webforum.nu/p/1637746

## #3 — Jiggr, 2005-06-28T12:05Z

Skrev så bara för att visa att jag bläddrar mig frammåt tre gånger i "RecSettet". Sen tar jag bort där "RecSettet" pekar och försöker skriva ut denna, jag undrar... vad händer då?

Permalänk: https://www.webforum.nu/p/1637747

## #4 — Jiggr, 2005-06-28T12:06Z

Inte blir det väl ett felmeddelande bara för att jag har tre RS.MoveNext i rad föressten?

Permalänk: https://www.webforum.nu/p/1637748

## #5 — SannyW, 2005-06-28T12:10Z

Välkommen!

Nope inget felmeddelande, det funkar att skriva som du gjorde. RS.moveNext gör att du flyttar fram en post i tabellen. Vilket gör att du kommer att skriva ut post nummer 4 i tabellen, som då tidigare var post nummer 5. Det vill säga om då id:et på raden som du tar bort med delet ligger innan post 6. för annars kommer du ta bort posten efter dina moveNext och kommer då inte att synas i utskriften.

/r

Dock skall tilläggas att den blir aningen rörigt att göra så här, bättre att skriva ut i lopp och sätta x=3 för att skriva ut just post 3 eller liknande.

Permalänk: https://www.webforum.nu/p/1637751

## #6 — joel_joel88, 2005-06-28T12:12Z

nej du har rätt, det blir inga felmeddelanden om du har rs.movenext i rad. Förhastade mig där.

Du kommer där i mot få detta felmeddelande om du skriver ut ett recordset efter rs.movenext.

> **Felmeddelande skrev:**
>
> ADODB.Field (0x80020009)
> Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats. Den begärda åtgärden kräver en aktuell post.

Permalänk: https://www.webforum.nu/p/1637752

## #7 — SannyW, 2005-06-28T12:14Z

> **Felmeddelande skrev:**
>
> ADODB.Field (0x80020009)
> Antingen är BOF eller EOF satt till True, eller så har aktuell post raderats. Den begärda åtgärden kräver en aktuell post.

 

Detta beror ju på att det inte finns fler poster i databasen.

Permalänk: https://www.webforum.nu/p/1637753

## #8 — Jiggr, 2005-06-28T12:15Z

Det felmeddelandet får man väl bara om man har gått så långt bland posterna att man kommit utanför posterna som finns i databasen eller vad det nu är...

Permalänk: https://www.webforum.nu/p/1637754

## #9 — joel_joel88, 2005-06-28T12:16Z

japp, fast jag ska tillläga en sak som jag glömde. Detta inträffar bara om man Loopar ut innehållet i tabellerna. Gör man inte det då får man inte detta felmeddelade.

Såg nu att du inte loopade ut innehållet.

Permalänk: https://www.webforum.nu/p/1637755

## #10 — SannyW, 2005-06-28T12:18Z

> **joel_joel88 skrev:**
>
> japp, fast jag ska tillläga en sak som jag glömde. Detta inträffar bara om man Loopar ut innehållet i tabellerna. Gör man inte det då får man inte detta felmeddelade.

Det kan jag tyvärr inte hålla med om. Testa att skriv ut efter dina MoveNext så skall du se vad som händer.

Permalänk: https://www.webforum.nu/p/1637756

## #11 — joel_joel88, 2005-06-28T12:19Z

Har testat det, händer inget förutom att det skriver ut post 2.

Permalänk: https://www.webforum.nu/p/1637757

## #12 — SannyW, 2005-06-28T12:24Z

Då får du banne mig visa lite kod, för då vet jag inte vad som händer. Hur många poster har du i databasen förresten?

Permalänk: https://www.webforum.nu/p/1637761

## #13 — @nders, 2005-06-28T12:24Z

> Har testat det, händer inget förutom att det skriver ut post 2.

Om recordsetet har hamnat EOF när du gjort din movenext så lär du väl få ett felmeddelande oberoende av om du loopat eller icke.

Permalänk: https://www.webforum.nu/p/1637762

## #14 — joel_joel88, 2005-06-28T12:29Z

Jo då får du ett felmeddelande. Men om man t.ex gör så
här får man inget felmeddelande så länge det är mer än 1 post.

```
<%
set connect = server.createobject("adodb.connection")
connect.open "Driver={Microsoft Access driver (*.mdb)};dbq=" & server.mappath("test.mdb")

set rs = connect.execute("select * from test")

rs.movenext

Response.write(rs("test"))

%>
```

Permalänk: https://www.webforum.nu/p/1637764

## #15 — @nders, 2005-06-28T12:34Z

Nej, det är klart att om recordsetet inte är end of file, så får man inte ett felmeddelande som säger det.

Men är recordsetet end of file, så får man ett felmeddelande om det, oberoende av om du loopat ut datat eller inte.

Permalänk: https://www.webforum.nu/p/1637766

## #16 — joel_joel88, 2005-06-28T12:35Z

> **@nders skrev:**
>
> Nej, det är klart att om recordsetet inte är end of file, så får man inte ett felmeddelande som säger det.
> 
> Men är recordsetet end of file, så får man ett felmeddelande om det, oberoende av om du loopat ut datat eller inte.

Ja du har rätt. Jag skulle ha skrivit om recordsetet är end of file. Det är jag som har vimsat i så fall.

Permalänk: https://www.webforum.nu/p/1637767

## #17 — SannyW, 2005-06-28T12:36Z

Nu tappade jag den röda tråden lite, men om du är nöjd med svaret/en **Jiggr** så glöm inte acceptera som slutgiltigt svar uppe till höger.

Permalänk: https://www.webforum.nu/p/1637768

## #18 — Jiggr, 2005-06-28T12:38Z

"men om du är nöjd med svaret/en Jiggr så glöm inte acceptera som slutgiltigt svar uppe till höger."
SannaW

Jasså, ska man göra sånt också? Nåväl, för mig var den knappen längst ner till höger, och nu ska jag klicka på den! =)

Permalänk: https://www.webforum.nu/p/1637769

## #19 — @nders, 2005-06-28T12:42Z

Längst ner till höger i varje inlägg ja, men det borde vara något inlägg där uppe som är det svar du blev nöjd med. ;)

Välkommen!

Permalänk: https://www.webforum.nu/p/1637771

## #20 — LarsG, 2005-06-28T12:46Z

Vad som händer beror på vilken 
[cursortyp](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdcstcommandtypeenum.asp) som specificerats för recordsetet.

Permalänk: https://www.webforum.nu/p/1637772

---

Tråden på webben: https://www.webforum.nu/amne/asp/130692-hur-fungerar-recset
