09. marts 2002 - 01:52Der 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.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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..
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.
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.
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.
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).
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 :(
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å.
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 :).
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.