Avatar billede kovalt Nybegynder
16. august 2004 - 09:40 Der er 10 kommentarer og
2 løsninger

PageCount med Gimini ODBC-driver

Hej

  Jeg har brug for at vide hvor mange records, der er i mit recordsset. Jeg kender til objRec.pageCount men den er ikke understøttet af denne driver.

  Nogen der ved om denne driver understøtter noget tilsvarende.

Kovalt
Avatar billede locturian Nybegynder
16. august 2004 - 09:43 #1
Hvis du bare vil vide hvor mange records der er, kan du bare bruge funktionen COUNT jo... SQL = "SELECT COUNT(ID) AS Antal FROM dintabel"
Set RS = Objconn.execute(SQL)

Response.Write RS("Antal")

Det virker jo ? :)
Avatar billede fennec Nybegynder
16. august 2004 - 09:48 #2
Du kan i de fleste tilfælde bruge count() funktionen til at tælle antallet, som locturian skriver. Men nogle databaser understøtter heller ikke count, også må du manuelt løbe den i gennem og tælle antallet.

Det har jeg måtte gøre før ved nogle gamle DOS databaser, da de ikke understøtter noget ud over "select * from...." (ingen join eller ligende). Så vi må håbe du kan bruge count() funktionen :o)
Avatar billede locturian Nybegynder
16. august 2004 - 09:55 #3
Nu skriver han jo ASP, hvorfor vi må antage at det er en mere gængs database, som Access(selvom jeg ikke vil kalde det en database, hehe), MySql eller MSSQL...

Men ellers ja, så er det bare at tælle op.. ;

SQL = "SELECT ID FROM dintabel"
Set RS  = Objconn.execute(SQL)
Antal = 0
Do Until Rs.Eof
Antal = Antal + 1
RS.MoveNext()
Loop
Response.Write Antal
Avatar billede fennec Nybegynder
16. august 2004 - 10:00 #4
Du kan skam også få adgang til gamle DOS databaser i ASP gennem ODBC. Hvis du ikke selv vil lave en driver, kan mange findes på nettet, eller ved at tage kontakt til skaberen....
Avatar billede locturian Nybegynder
16. august 2004 - 10:02 #5
Ja, rigtigt, men det er bare ikke så ønskeligt mere, med mindre der ikke er nogen måde at konvertere det gamle på - Hvis man laver noget nyt, kan det ikke betale sig at bruge en DOS baseret database jo :)
Avatar billede fennec Nybegynder
16. august 2004 - 10:15 #6
Jeg synes også det er noget lo.t at bruge gamle databaser, men vi har mange kunder her i firmaet, som bruger dem pga. de ikke vil udskifte de programmer, de bruger til at indtaste data med.

Sidst skulle jeg koble en online shop til sådan et system. Snak om at det er besværlig.... :o)

anyway, så har du jo vist begge "sikre" løsningsmuligheder nu (med kode), så kovalt skulle have fået løst sit problem, på den ene eller anden måde. Så er det jo bare at vente til han har fået det afprøvet, og melder tilbage.... Så skulle du jo gerne have 15 ekstra point i din lomme :o)
Avatar billede locturian Nybegynder
16. august 2004 - 10:23 #7
hehe, tjae, whuhuuu - 15 point :) Det er nu ikke ligefrem det der driver værket... har omkring 6000 point på kontoen, hvilket svare til at jeg kan oprette 100 60 points spørgsmål... Må indrømme, at det ikke er for point jeg gider at hjælpe :) Mere fordi det er rart, når andre gider at hjælpe en selv... Hvis ikke man hjælper, så kan man heller ikke forvente hjælp :)
Avatar billede fennec Nybegynder
16. august 2004 - 10:29 #8
Det eneste gode ved point systemet er, at man bliver PRO medlem, hvis man er i top 100 en måned. Det er det eneste jeg går efter, da man så kan fjerne reklamer og ligende fra E. Jeg hader reklamer, men jeg er også for nærig til at betale for PRO medlemskabet....
Avatar billede eagleeye Praktikant
16. august 2004 - 10:31 #9
objRec.pageCount  bruge i forbindelse med paging og ikke til antal records til at finde antal record bruges:
objRec.RecordCount

objRec.RecordCount vil give den fejl du beskriver hvis man åbner sig recordset på denne måde:
Set rs=Conn.Execute(SQL)
da det ikke laver et rigtig recordset, så skal du bruge .Open metoden:

Set objRec = Server.CreateObject("ADODB.Recordset")
SQL = "select * from tabel"
objRec.Open SQL, Conn, 1
AntalPoster = objRec.RecordCount


COUNT er standart SQL så det understyttes af alle database som vil kalde sig en database.
Avatar billede kovalt Nybegynder
16. august 2004 - 10:32 #10
Grunden til jeg ikke så gerne ville anvende Count er at jeg gerne vil ha selve recordsne ud af udtrækket. Men enden på det må blive at jeg bare tæller manuelt.

Jeg har endnu ikke haft held med at finde ud af om driveren understøtter funktionen. Og sådan lige for god ordens skyld synes jeg lige i skal vide at det er en Interbase 6.0 database jeg sidder og connecter til.
Avatar billede eagleeye Praktikant
16. august 2004 - 10:41 #11
Driveren understytter .RecordCount. Det som afgør om det virker eller melder fejl er hvordan man åbner sit recordset som jeg beskrevet lige før. Du skal bruge.Open metoden for at RecoudCount og evt. paging virker.

Set objRec = Server.CreateObject("ADODB.Recordset")
SQL = "select * from tabel"
objRec.Open SQL, Conn, 1
AntalPoster = objRec.RecordCount


dette kode virker med Access og MSSQL. Bruger du mySQL er det ikke sikkert det virker og så du nød til en COUNT SQL.
Avatar billede kovalt Nybegynder
17. august 2004 - 10:28 #12
Som jeg skrev er det en Interbase og jeg kan kun få det til ar virke med COUNT().

Tak for jeres tid.
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