/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Sæt 'pegepind' til start og antal record
Fra : Kurt G


Dato : 15-08-08 17:07

Jeg har brug for at vide, hvor mange poster, der er i en tabel.
Da jeg ikke kender nogen anden metode tæller jeg dem op med en EOF-loop.
Når det er gjort, er pegepinden for tabellen jo i bunden af tabellen og for
at bringe pegepinden til starten af tabellen, lukker og åbner jeg tabellen
igen.
Er der ikke en smartere måde at gøre det på?

Mvh Kurt



 
 
Jørn Andersen (15-08-2008)
Kommentar
Fra : Jørn Andersen


Dato : 15-08-08 18:27

On Fri, 15 Aug 2008 18:06:45 +0200, "Kurt G" <kurt_g@guldbaek.net>
wrote:

>Jeg har brug for at vide, hvor mange poster, der er i en tabel.
>Da jeg ikke kender nogen anden metode tæller jeg dem op med en EOF-loop.
>Når det er gjort, er pegepinden for tabellen jo i bunden af tabellen og for
>at bringe pegepinden til starten af tabellen, lukker og åbner jeg tabellen
>igen.
>Er der ikke en smartere måde at gøre det på?

Absolut - indtil flere.

Den emst enkle er nok:
intAntalPoster = objRs.RecordCount

- det kræver, at Recordsettet ikke er åbnet med en ForwardOnly cursor,
men fx en Static cursor. Fx:

Set objRs = Server.CreateObject("ADODB.RecordSet")
objRs.Open strSql, strDsn, 3

3-tallet angiver en statisk cursor. Kan evt. gøres mere læsbar med
Const adOpenStatic = 3
(eller ved at indlæse alle ADO-konstanterne).

Se mere:
<url: http://www.w3schools.com/ado/ado_ref_recordset.asp>
<url: http://www.w3schools.com/ado/prop_rs_cursortype.asp>

Hvis du af en eller anden grund skal flytte cursoren (pegepinden), så er
der flere muligheder - bl.a.:

objRs.MoveNext (1 frem - kender du sikkert fra Rs-loops)
objRs.MovePrevious (1 tilbage)
objRs.MoveFirst (flyt til første post)
objRs.MoveLast (flyt til sidste post)
objRs.Move(-3) (3 poster baglæns - eller hvilket tal man nu vælger)

Man skal være opmærksom på:
- at bruge den rigtige cursor ForwardOnly kan naturligvis ikke "spole
baglæns")
- ikke at pege ud over .Bof eller Eof (start eller slut)

Desuden - hvis du virkelig har behov for at jonglere med din pegepind -
så er der også en Bookmark-egenskab, som kan læses og/eller sættes.
<url: http://www.w3schools.com/ado/prop_rs_bookmark.asp>

En anden metode:
Hvis du alligevel trækker recordsettet ud i et array med. GetRows, så
kan du bare måle størrelse på arrayet med Ubound (+1).

Hvis du
Good luck!

--
Jørn Andersen,
Brønshøj

Kurt G (15-08-2008)
Kommentar
Fra : Kurt G


Dato : 15-08-08 21:05

Tak til Jørn for et meget fyldestgørende og hurtigt svar.

Mvh Kurt




Søg
Reklame
Statistik
Spørgsmål : 177438
Tips : 31962
Nyheder : 719565
Indlæg : 6408047
Brugere : 218879

Månedens bedste
Årets bedste
Sidste års bedste