Avatar billede spectual Nybegynder
18. maj 2001 - 12:48 Der er 15 kommentarer og
1 løsning

Recordcount


Hvordan bruger man <recordset>.recordcount op imod en sybase database?

Når jeg gør det, returnerer den altid -1.
Avatar billede disky Nybegynder
18. maj 2001 - 13:37 #1
hvad er det helt du tænker på ?

Vil du bare tælle antal record ud fra et bestemt kriterie ?
Avatar billede spectual Nybegynder
18. maj 2001 - 13:45 #2
Problemet er som følger:

Jeg har oprettet et recordset objekt og kørt en sql sætning på det objekt.

Nu vil jeg gerne hente en værdi til en variabel.

Den værdi skal indeholde det antal poster, som recordsettet indeholder efter at have kørt sql sætningen.

Normalt vil man kunne skrive:

antal = rs.recordcount

hvor rs er recordset objektet og det virker fint når man bruger en Access database, men af en eller anden årsag vil antal indeholde værdien -1 når man bruger en sybase database.

Mit spørgsmål går på hvordan man kan få den til at returnere det rigtige antal fremfor -1.
Avatar billede disky Nybegynder
18. maj 2001 - 13:48 #3
okay, nu er jeg med :-)

Umiddelbart lyder det som et driver problem :(

Altså at din jdbc driver ikke understøtter denne funktionalitet. Men jeg undersøger lige :)
Avatar billede disky Nybegynder
18. maj 2001 - 13:50 #4
mystisk jeg kan slet ikke se noget om den .recordCount

har du noget dokumentation ?
Avatar billede spectual Nybegynder
18. maj 2001 - 13:52 #5
Kun på skrift i en ASP bog...
Avatar billede disky Nybegynder
18. maj 2001 - 13:53 #6
okay, måske er det noget access specifikt noget ?

Kender ikke så meget til ASP. :(
Avatar billede spectual Nybegynder
18. maj 2001 - 13:56 #7
men det kan egentlig godt være, at recordcount hedder noget andet i transact sql...?
Avatar billede disky Nybegynder
18. maj 2001 - 13:59 #8
jeg kan desværre ikke hjælpe dig :(
Avatar billede spectual Nybegynder
18. maj 2001 - 14:02 #9
ok
Avatar billede spectual Nybegynder
18. maj 2001 - 14:10 #10
Muligvis vil en løsning på problemet være at skrive rs.movelast umiddelbart før man skal bruge recordcount, men hvis man har en halv million records i sit recordset skulle det blive temmeligt langsomt at gøre det på den måde.
Avatar billede disky Nybegynder
18. maj 2001 - 14:15 #11
helt enig.

men hvad med at du lige efter du har hentet dine records laver en

select count(*) from TabelNavn where etellerandet=nogetande

Og så lader Sybase tælle for dig :)

Selvfølgelig skal from TabelNavn where etellerandet=nogetande være det samme som i din select statement
Avatar billede spectual Nybegynder
18. maj 2001 - 14:24 #12
kan man slå den sammen med sin normale sql sætning som f.eks.

select count(*) firmanavn FROM firmaer WHERE firmaid>10

?
Avatar billede disky Nybegynder
18. maj 2001 - 14:25 #13
godt spørgsmål.

prøv med:

select count(*), firmanavn FROM firmaer WHERE firmaid>10


du manglede vist et \',\'
Avatar billede spectual Nybegynder
18. maj 2001 - 14:29 #14
jeg har lige fået at vide af min kollega, at man ikke kan slå det sammen - det kræver et ekstra opslag i databasen - men tilgengæld virker det også på Access databaser, så spørgsmålet er besvaret.

Tak for hjælpen :)
Avatar billede disky Nybegynder
18. maj 2001 - 14:30 #15
det var da skam så lidt :)

Avatar billede richard Nybegynder
05. august 2001 - 12:05 #16
Det ser ud til at dit problem er blevet løst.

Men til en anden virker \'rs.recordcount\' i VB (som er script-sproget til ASP), anderledes end \'select count(*)\' i SQL. I VB6 tæller .recordcount antallet af tilgåede record og dette er ikke altid lig med antallet af records i resultat-sættet.

Har selv haft en problemstilling, netop med recordcount (det tog mig 14 dage indtil jeg opdagede hvad recordcount egentligt udførte).

Bare til en anden gang
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester