Avatar billede orca Nybegynder
09. marts 2002 - 01:52 Der er 26 kommentarer og
1 løsning

Jeg fatter det ik :(

Hej alle. Jeg kører sitet www.gameshots.dk. Som i nok kan se virker afstemningsformen ikke på forsiden (fejlen opdages først efter man har stemt, sorry). Resultatet vises simpelthen ikke. Dette skyldes at følgende SQL streng returnerer EOF:

rsStats.Open "SELECT  Vote,Count(*) As Antal FROM tblVoteRegistrations WHERE VoteID = " & rs("VoteID") & " GROUP BY Vote ORDER BY Vote", Conn, 1, 2

SQL strengen skal ikke returnere EOF, og har ingen grund til det ifølge indholdet af databasen. Når jeg kører min side lokalt på en IIS server returnerer den ikke EOF, og både lokalt og eksternt kører jeg på samme MySQL database. Jeg har min side hostet hos Cliche.dk.

Hvordan kan det være at denne sql streng returnerer EOF hos cliche, og ikke lokalt? Al kode er 100% ens, og de bruger samme database.

Mvh Mark
--
www.gameshots.dk
Avatar billede bounce2002 Nybegynder
09. marts 2002 - 01:56 #1
Jeg har fået at vide, at der er mange der skulle ha lavet deres kode om når de kom over på Cliche's servere. Hvorfor ved jeg ikke, så jeg er lige med på en kigger her..
Avatar billede orca Nybegynder
09. marts 2002 - 01:58 #2
Jeg har arbejdet i et par dage med at konvertere al min kode... Jeg kom fra en SQL Server database, og bruger nu en MySQL database... Damn det var et stort arbejde :(. Men denne her burde nu virke.
Avatar billede erikjacobsen Ekspert
09. marts 2002 - 02:01 #3
Er det tilladt at gætte lidt på dette tidspunkt?

Prøv at udskifte rs("VoteID") med et tal, for at se om det er der
problemet opstår.
Avatar billede orca Nybegynder
09. marts 2002 - 02:07 #4
Det er bestemt tilladt at gætte...

Det hjalp desværre ikke, samme resultat. Jeg har også prøvet at udskrive den, og den har den korrekte værdi.
Avatar billede erikjacobsen Ekspert
09. marts 2002 - 02:09 #5
Så

  v = rs("VoteID")
  rs.close

og så fyr den nye af med variablen v. Måske du ikke kan have så mange åbne.
(Vi gætter stadig...)
Avatar billede orca Nybegynder
09. marts 2002 - 02:15 #6
Desværre samme resultat. Jeg har i alt 2 recordsets åbne. Vil du se hele koden?
Avatar billede erikjacobsen Ekspert
09. marts 2002 - 02:15 #7
Tjah,  hvorfor ikke ... :)
Avatar billede orca Nybegynder
09. marts 2002 - 02:21 #8
http://www.gameshots.dk/code.txt

Det er delen nede i bunden. Jeg kan komme med en forklaring på hvad der sker hvis nødvendigt.
Avatar billede erikjacobsen Ekspert
09. marts 2002 - 02:26 #9
Du lukker ikke med rs.close, når du bruger iV, så du afprøver
strengt taget ikke min teori. Du bruger også rs("VoteID" mange
andre steder, så det er selvfølgelig besværligt. En anden mulighed
er at oprette endnu et recordset i stedet for at genbruge rsStats.
Avatar billede erikjacobsen Ekspert
09. marts 2002 - 02:31 #10
Det er også lidt "farlig" kode - ikke at det skulle være problemer,
men alligevel.

Er du sikker på du har 5 rækker i svaret ? Du kunne
overveje en while-løkke.

Hvis dn ... If rsStats("Vote") = i Then ... ikke passer, får
du ikke sagt rsStart.movenext, og så har du en uendelig
løkke.
Avatar billede orca Nybegynder
09. marts 2002 - 02:41 #11
Jeg prøvede lige at lukke rs recordsettet, men det hjalp heller ikke. Jeg vil aldrig få en uendelig løkke da jeg netop bruger et For loop. Jeg har også lige prøvet at oprette et nyt recordset i stedet for at genbruge rsStats, men stadig samme resultat :'(.

Der er sjældent 5 rækker i svaret... Dette er også meningen. Hvis en vote f.eks har 5 muligheder, og folk kun har votet på de 3 af dem. Så vil jeg kun få returneret tre Groups fra recordsettet. Derved vil der kun blive vist resultatet fra de resultater folk har votet på. På denne måde undgår jeg at vise de to sidste muligheder som har 0% i votes.

Jeg tager glædeligt mod flere forslag :).
Avatar billede orca Nybegynder
09. marts 2002 - 02:42 #12
code.txt er opdateret med den nuværende kode.
Avatar billede erikjacobsen Ekspert
09. marts 2002 - 02:45 #13
Mener du at du får en "Error :(" med det samme, eller kommer
der nogle tal, hvis du fx har 3 svar. Står din else med "Error :("
det rigtige sted ?
Avatar billede orca Nybegynder
09. marts 2002 - 02:50 #14
Jeg får error med det samme... Altså er rsStats.EOF = true fra start, hvilket undrer mig meget.
Avatar billede erikjacobsen Ekspert
09. marts 2002 - 02:55 #15
Ok - den der "Error :(" skal så ikke stå der i den endelige version?

Er det et ASP eller MySql-problem, dvs. kan du udføre din "SELECT..."
direkte mod databasen uden fejl?
Avatar billede orca Nybegynder
09. marts 2002 - 03:22 #16
Error er kun der for at jeg kan tjekke om rsStats er EOF, og den er der derfor ikke i den endelige version, nej :).

Jeg kan sagtens udføre normale SELECT funktioner mod databasen, alle andre funktioner virker på mit site... Men denne her vil bare ikke. Og det underlige er som sagt at det kører perfekt lokalt: http://212.242.193.110 (ik sikkert den kører hele tiden).
Avatar billede erikjacobsen Ekspert
09. marts 2002 - 07:31 #17
Ja, ok - i givet fald skulle jeg nok sidde selv og lege med det, og
det har jeg ikke lige tid til.

(PS: Du bør ændre dit password hos cliche.dk - hvis du ikke har gjort
det inden for den sidste uges tid)
Avatar billede excession Nybegynder
09. marts 2002 - 11:43 #18
prøv som ericj siger og lave en do while not (rsStats.BOF or rsStats.EOF)?

jeg gætter også lige lidt så :)
Avatar billede orca Nybegynder
09. marts 2002 - 13:18 #19
Når jeg laver et While loop så bliver det lige netop til et uendeligt loop. Jeg prøvede dog at lave en test version, men det virkede heller ikke, den er stadig EOF fra start :(
Avatar billede excession Nybegynder
09. marts 2002 - 13:48 #20
hvorfor bliver det et uendeligt loop?

du er velkommen til at teste det på min webhotel hvis du tror det er cliches server..

-- xs

stark@newidentity.dk
ICQ: 51504709
Avatar billede excession Nybegynder
09. marts 2002 - 14:00 #21
skal det her egentlig ikke se anderledes ud?

rsStats.Open "SELECT  Vote,Count(*) As Antal FROM tblVoteRegistrations WHERE VoteID = " & rs("VoteID") & " GROUP BY Vote ORDER BY Vote", Conn, 1, 2

ændres til?:

rsStats.Open "SELECT  Vote,Count(*) As Antal FROM tblVoteRegistrations WHERE VoteID = " & rs("VoteID") & " GROUP BY Vote ORDER BY Vote", Conn, 2, 2

så den er ændret til adOpenStatic eller adOpenDynamic?


eller er det bare mig der stadig ikke fatter noget om cursorer :)

-- xs
Avatar billede orca Nybegynder
09. marts 2002 - 14:01 #22
Pga den måde jeg looper igennem på. Hvis ikke rs("VoteID") er lig en variabel jeg har fastsat, så bliver rsStats.MoveNext ikke udført. Og siden den ikke bliver udført bliver rsStats aldrig EOF. Jeg bruger netop denne metode for kun at vise de resultater der faktisk er blevet stemt på.
Avatar billede orca Nybegynder
09. marts 2002 - 14:05 #23
Jeg prøvede at ændre cursortypen... Men stadig intet held :( Det er sq deprimerende :}
Avatar billede orca Nybegynder
10. marts 2002 - 14:03 #24
Weee, endelig kører eksperten igen... Over 12 timer uden den... brrr...

Nåh, jeg har efterhånden accepteret at dette bare ikke kan lade sig gøre, om det så er problemer med webhotellet eller databasen ved jeg ikke. Jeg har derfor ændret metoden til at jeg opretter et nyt recordset hver gang mit for loop køres igennem (dette lukkes selvfølgelig lige efter brug). Det var egentligt den metode jeg helst ville undgå, da det nok tager en del serverressourcer i forhold til den anden, men der er vist ingen andre muligheder.

Jeg fik ikke problemet løst, men i forsøgte da, så jeg giver lidt point alligevel :).

Mvh Mark
--
www.gameshots.dk
Avatar billede orca Nybegynder
10. marts 2002 - 14:04 #25
hmm, kan erik og excession ik lige komme med et svar? ;)
Avatar billede excession Nybegynder
10. marts 2002 - 16:18 #26
du må stadig gerne prøve at smide det op på mit site hvis du vil prøve det..

det kan være cliche kan ændre lidt på opsætning hvis det virker som det skal på mit..

det er op til dig.  Håber du løser problemet ihvertfald .)

-- xs
Avatar billede erikjacobsen Ekspert
10. marts 2002 - 17:25 #27
Nej, tak, ingen løsning,  ingen point
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