Avatar billede bergstein Nybegynder
09. august 2009 - 11:00 Der er 5 kommentarer og
1 løsning

RecordCount

Hej.

Jeg ønsker at finde ud af, hvor mange poster, der er i min tabel og har fndet et mystisk problem, som jeg ikke synes jeg plejer at få.

Nu er det nok en "fejl-40" og jeg vil ikke nægte, at jeg måske husker et eller andet galt i forhold til tidlgiere, ho jeg har fået det til at fungere.

Jeg har en tabel(Firebird 2.1). Jeg har 5 poster i tabellen.

Så har jeg forsøgt at oprette en ibquery med SQL "SELECT * from tabel1" og gjort den aktiv.

Jeg har følgende kode:
label1.caption := inttostr(query1.recordcount);

På samme måde har jeg forsøgt med en IBSQL:
label1.caption := ibsql1(query1.recordcount);

I begge tilfælde bliver resultatet 1 (et), sevom der er 5 poster i tabellen.

Så har jeg af visuelle grunde prøvet at koble en datasource på min query og en grid til min datasource.

Når grid'en er stor nok til at rumme alle 5 poster, så vises nu det rigtige antal poster. Når grid'en kun er stor nok til at vise de 4 første poster, så bliver resultatet 4
Avatar billede erikjacobsen Ekspert
09. august 2009 - 12:15 #1
Generelt kan man ikke aflæse record-count - jeg har ikke lige erfaring med dit setup.

Grunden er at database-maskinen ikke læser alle poster, før den leverer de første, og derfor ikke kender antallet af poster. Det sker af effektivitets hensyn, men kan sommetider slåes fra og til - eller man kan skifte driver, måske.
Avatar billede kroning Nybegynder
09. august 2009 - 13:21 #2
"SELECT COUNT(*) from tabel1" vil give dig antallet af poster i tabellen
Avatar billede bergstein Nybegynder
09. august 2009 - 17:02 #3
Ja jeg kender SQL-løsningen, men mente bare, at dataset'ets RecordCount kunne det samme. Jeg huskeden ok forkert.

Du får pointene alligevel, hvis du sender svar.
Avatar billede kroning Nybegynder
09. august 2009 - 17:48 #4
ok
Avatar billede bergstein Nybegynder
09. august 2009 - 17:51 #5
Skal man i øvrigt ikke have et "as Antal" ind i SQL'en for at kunne bruge værdien fra SELECT strengen?

"SELECT COUNT(*) as Antal from tabel1"
Avatar billede kroning Nybegynder
09. august 2009 - 18:14 #6
Ikke nødvendigvis, uden as Antal er field navnet COUNT(*), sådan er det i MySQL
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
Kurser inden for grundlæggende programmering

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