Avatar billede cyberkox Nybegynder
03. marts 2006 - 20:52 Der er 11 kommentarer og
1 løsning

rs.AbsolutePage ved brug af MySQL db

Hey E

Jeg er ved at smide mine Access db væk, til fordel for MySQL (der skulle være meget bedre og hurtigere?).

Men i min gæstebog anvender jeg Paging og rs.AbsolutePage og her melder den fejl?

Er det MySQL db der er vrøl med eller kan man ikke dette med MySQL?
Avatar billede eagleeye Praktikant
03. marts 2006 - 20:57 #1
Det er helt korret at rs.AbsolutePage og mysql ikke går godt sammen. Tilgengæld har mysql inbygget en limit funktion som er meget bedre end access top. Men limit er det muligt at lave paging, se dette eksempel:

http://activedeveloper.dk/artikler/default.asp?articleid=279
Avatar billede cyberkox Nybegynder
03. marts 2006 - 21:11 #2
Joe, men jeg ka ikke helt få den til at virke:

Set Rs = Conn.Execute("SELECT COUNT(*) AS records FROM bog;")
intRecords = int(Rs("records"))
Rs.Close
Set Rs = Nothing

Den melder fejl:

Microsoft VBScript runtime error '800a01ca'

Variable uses an Automation type not supported in VBScript

/index.asp, line 244 = intRecords = int(Rs("records"))
Avatar billede eagleeye Praktikant
03. marts 2006 - 21:16 #3
I princippet behøver man ikke int omkring så prøv sådan her:

intRecords = Rs("records")
Avatar billede cyberkox Nybegynder
03. marts 2006 - 21:20 #4
Så kommer denne fejl:

Microsoft VBScript runtime error '800a000d'

Type mismatch

/index.asp, line 266

intPageSize = int(5)
intStart = intPage*intPageSize
intStart = intStart-intPageSize
intPages = int(intRecords/intPageSize)+1      <- line 266
Avatar billede eagleeye Praktikant
03. marts 2006 - 21:24 #5
Ok, så må der sætte int omkring i den linie:

intPages = int(intRecords/intPageSize)+1

Men prøv at rette den til dette da den anden vil kunne give en tom side hvis de to tal går lige op:

intPages = abs(int(-int(intRecords)/intPageSize))
Avatar billede cyberkox Nybegynder
03. marts 2006 - 21:39 #6
Altså det skal siges at jeg ikk er helt inde i det med MySQL? Kan det være databasen der er forkert på den, for den melder stadig fejl?
Avatar billede eagleeye Praktikant
03. marts 2006 - 21:41 #7
Umiddelbart skulle der ikke være de helt store problemmer. Hvilken fejl får du?

Hvis det er den samme som den første så prøv sådan her:

intPages = abs(int(-Cdbl(intRecords)/intPageSize))
Avatar billede cyberkox Nybegynder
03. marts 2006 - 21:43 #8
Det hjalp godt nok..
Kan du fortælle lidt om funktionerne du bruger?
Avatar billede eagleeye Praktikant
03. marts 2006 - 21:46 #9
Denne fejl du fik:
Microsoft VBScript runtime error '800a01ca'

Er en MS vbscript fjel som gør Int fejler når man får en bestemt type fra et recordset. Løsninngen er at bruge Cdbl omkring i stedet for:
http://support.microsoft.com/default.aspx/kb/195180

Funktionerne:

Cdbl : konverter et tal/tekst til typen Long Int så teskten tolkes som et tal.
Int : Den konverte et tal til et heltal ved runde ned,  2,65 -> 2
abs : Absolute laver negative og positive tal om til positive tal.
Avatar billede cyberkox Nybegynder
03. marts 2006 - 21:59 #10
Ahh, jeg takker mange gange :)
Avatar billede eagleeye Praktikant
03. marts 2006 - 22:00 #11
det var så lidt, laver lige et svar så ;-)
Avatar billede cyberkox Nybegynder
03. marts 2006 - 22:00 #12
Værsgo ;)
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