---
title: "längd på ett recordset utan att loopa"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/116524-längd-på-ett-recordset-utan-att-loopa"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "mattiasnordin"
published: "2004-11-23T14:13:34.000Z"
updated: "2004-11-23T15:56:13.000Z"
replies: 12
views: 335
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/116524-längd-på-ett-recordset-utan-att-loopa"
---

# längd på ett recordset utan att loopa

## #1 — mattiasnordin, 2004-11-23T14:13Z

Går det att får fram hur många poster ett recordset innehåller utan att loopa ?

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

## #2 — @nders, 2004-11-23T14:17Z

Japp. Om du öppnar recordsetet på lämpligt vis så kan du använda egenskapen .RecordCount.

Mvh

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

## #3 — @nders, 2004-11-23T14:21Z

Du kan förresten läsa lite i [denna tråd](http://www.webforum.nu/showthread.php?s=&forumid=22&threadid=107264). Känns något av det igen? Där använder du recordcount.

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

## #4 — mattiasnordin, 2004-11-23T14:35Z

Jo visst gör det det... \*ler\*

Men jag antar att det enbart fungerar med "rs.Open" metoden?

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

## #5 — @nders, 2004-11-23T14:36Z

Japp. Enbart med rs.open och lämplig låstyp / cursortyp.

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

## #6 — OveRRidE, 2004-11-23T14:44Z

OT: Det kan vara värt att veta att .Execute-metoden däremot har en ByRef-parameter som kallas RecordsAffected. Den returnerar dock -1 vid SELECT-statements, men returnerar antalet påverkade rader vid t.ex. INSERT, UPDATE eller DELETE.

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

## #7 — mattiasnordin, 2004-11-23T14:50Z

Thanx killar. 

Då loopar jag lite i detta fall :)

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

## #8 — OveRRidE, 2004-11-23T14:55Z

> **mattiasnordin skrev:**
>
> Thanx killar. 
> 
> Då loopar jag lite i detta fall :)

Jag skulle nog snarare rekommendera att du använder .Open på Recordset-objektet istället, det är bättre både prestandamässigt och programmeringsmässigt. Du kan använda .Open med rätt konstanter utan att det behöver kosta skjortan i prestanda:

```
Const adOpenStatic = 3
Const adLockReadOnly = 1
rs.Open sSQL, objConn, adOpenStatic, adLockReadOnly
```

eller

```
rs.Open sSQL, objConn, 3, 1
```

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

## #9 — mattiasnordin, 2004-11-23T15:20Z

Då ska jag lära mig att börja köra denna variant istället. Är man självlärd så blir man lite bekväm och kör det som alltid har fungerat istället för göra rätt ;)

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

## #10 — mattiasnordin, 2004-11-23T15:28Z

Object required error på följande kod:

```
' Access 2002 '
Set Connect = Server.CreateObject( "Adodb.Connection" )
Connect.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath( "/staffdatabase2/staffdatabase_2003.mdb" )
Connect.ConnectionString = "Data Source='" & MdbFilePath & "'"
Connect.open

sql = "SELECT * FROM T_staff "
Const adOpenStatic = 3
Const adLockReadOnly = 1
rsStaff.Open sql, Connect, adOpenStatic, adLockReadOnly
```

Hmmm... har inte erfarenhet av rätt syntax ännu. Hilfe :)

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

## #11 — mattiasnordin, 2004-11-23T15:35Z

Hittade felet. Tack killar.

> sql = "SELECT \* FROM T_staff "
> Const adOpenStatic = 3
> Const adLockReadOnly = 1
> **Set rsStaff = Server.CreateObject("ADODB.RecordSet")**
> rsStaff.Open sql, Connect, adOpenStatic, adLockReadOnly

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

## #12 — OveRRidE, 2004-11-23T15:47Z

Observera att 3,1 gör ditt recordset till ReadOnly (adLockReadOnly) och din cursor till Static (adOpenStatic). På svenska innebär det att du inte kan göra ändringar i recordset'et, men dock kan röra dig fritt framåt (.MoveNext) eller bakåt (.MovePrevious), samt med t.ex. AbsolutePosition placera markören på valfritt index i ditt recordset. 

Skall du bara flytta framåt i ditt recordset kan du även använda adOpenForwardOnly (som har värdet 0)  istället för adOpenStatic, om du skall t.ex. bara dra ut data som en lista. 

Läs mer om pekare och låstyper under ADO på MSDN:
<http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdcstcursortypeenum.asp>
<http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdcstlocktypeenum.asp>

Mer om .Open: 
<http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdmthrstopen.asp>

Kom ihåg, MSDN Library är din bästa vän. ;)

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

## #13 — mattiasnordin, 2004-11-23T15:56Z

Bra info. Blev en liten snabbkurs det här. Vem ska jag skicka fakturan till ??? \*ler\*

Jag har aldrig gjort något mer advancerat än att stegat mig fram i ett recordset så det duger gott. Bra att lära sig något nytt dock.
Jag slapp loopen i alla fall :)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/116524-längd-på-ett-recordset-utan-att-loopa
