11. december 2002 - 16:58Der er
7 kommentarer og 1 løsning
!HASTER! - problem med SQL forespørgsel i ASP
Min asp kode ser sådanne ud :
id2 = Request.querystring("id2")
set rshot = Server.CreateObject("ADODB.Connection") rshot.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=D:\inetpub\wwwroot\db.mdb" hot = "SELECT count(*) as Found1 FROM (hot INNER JOIN vote ON hot.Ejerid = vote.Ejerid) where hot.ejerid<>"&id2&" and vote_id<>"&id2 Set hot1 = Rshot.Execute(hot) Ialt = hot1("found1") hot2 = "SELECT * FROM (hot INNER JOIN vote ON hot.Ejerid = vote.Ejerid) where hot.ejerid<>"&id2&" and vote_id<>"&id2 Set hot1 = Rshot.Execute(hot2)
Randomize RandNum = Int(Rnd * Ialt) + 1 hot1.MoveFirst For i = 1 to RandNum - 1 hot1.MoveNext next
Jeg får så en fejl ved : ADODB.Recordset error '800a0bcd' Unknown runtime error
hot1.moveFirst
Det som den skal er at vælge alle de poster hvor vote_id og ejer id er forskellig fra id2, og her efter skal den vise en post som den finder via Randomize sætningen.
Dette skal bruges til at stemme om forskellige farver på mapper til et kontor hvor hver ansat kan komme med deres forslag, og hvor andre så kan stemme på den.
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Det skal lige siges at databasen har 2 tabeller : hot indeholder filnavn(link til det billede der skal vises) ejerid(id på den der har oprettet billedet) beskrivelse (beskrivelse af billedet med mappen) billedestr (som er størrelsen på billedet i bytes)
vote indholder Ejerid (id på den ejer man har stemt på) vote_id (ens eget id) og vote (et tal fra 1 til 5)
loss > Se lige her hot = "SELECT count(*) as Found1 FROM (hot INNER JOIN vote ON hot.Ejerid = vote.Ejerid) where hot.ejerid<>"&id2&" and vote_id<>"&id2 Set hot1 = Rshot.Execute(hot) Ialt = hot1("found1") hot2 = "SELECT * FROM (hot INNER JOIN vote ON hot.Ejerid = vote.Ejerid) where hot.ejerid<>"&id2&" and vote_id<>"&id2 Set hot1 = Rshot.Execute(hot2)
Er det ikke det du mener ??
og det med at den kun tager en er jo ikke noget problem. for det er bare at lade være med at smide den i en While sætning
hot = "SELECT count(*) as Found1 FROM (hot INNER JOIN vote ON hot.Ejerid = vote.Ejerid) where hot.ejerid<>"&id2&" and vote_id<>"&id2 Set hot1 = Rshot.Execute(hot) Ialt = hot1("found1")
RandNum = Int(Rnd * Ialt) + 1
hot2 = "SELECT * FROM (hot INNER JOIN vote ON hot.Ejerid = vote.Ejerid) where hot.ejerid<>"&id2&" and vote_id<>"&id2&"limit " & RandNum & ",1" Set hot1 = Rshot.Execute(hot2)
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.