Avatar billede tbm_iceman Nybegynder
30. januar 2002 - 16:11 Der er 6 kommentarer og
1 løsning

Opslag i 2 DB med Referrencer, skal bruge optimering (arrays måske).

Hejsa Alle mine karl kode kammerater.

Jeg har et lille optimerings problem her.
Jeg arrangerer et netparty sammen med nogle venner.
Vores bruger database er MEGET stor efter hånden, og har følgende problem:

Vi har to databaser....  USERS og BORD
I BORD er der referencer til den anden via "User_ID" på alle som er tilmeldt vores Party.

Jeg skal lave et udtræk af USERS databasen arrangeret efter "USERNAME".
Men den skal kun tage dem som står registrerer som "Tilmeldte" i BORD databasen..

Jeg har selv lavet koden der følger med, men problemet er at den går hele USERS databasen igennem for at kunne generer listen af tilmeldte brugerer.

Hvordan kan det optimeres da det tager op i mod 4-6 sek med vores nuværende kode. Jeg har selv overvejet en bruge nogle arrays os så måske sorterer dem efter alle opslagene, men jeg STINKER til at bruger fleredimensionelle arrays.
Så jeg vil give 150 point til en som kan give mig en god løsning eller bare give mig et godt hint.


KODE:
' Mode User Start
If ListMode = "user" Then
    strSQL = "SELECT * FROM Users ORDER BY " & SQLTilmelding
    Set USERS = conn.execute(strSQL)
    Do Until USERS.EOF
        SQL = "SELECT * FROM Bord WHERE Bruger=" & USERS("User_ID")
        Set BORD = Conn.execute(SQL)
        If Not BORD.EOF Then
            %>
            <tr>
                <td>&nbsp;<%=USERS("username") %></td>
                <%
                If BORD("FRB") = 2 Then
                    tmpCol = cColPaid
                    Betalte = Betalte + 1
                End If
                If BORD("FRB") > 0 then
                    tmpCol = "##000000"
                    Tilmelding = Tilmelding + 1
                End If %>
                <td><font color="<%=tmpCol%>"><%=USERS("realname") %></font></td>
                <td><%=USERS("klan") %></td>
                <td><%=BORD("Plads") %></td>
            </tr>
            <%
        End If
    USERS.MoveNext
    Loop
End if
' Mode User Slut
Avatar billede terry Ekspert
30. januar 2002 - 20:28 #1
Why dont you put both tables in ONE database and then things will be much easier. Then you can make a query selecting all the information in one go.

"SELECT USERS.User_ID, USERS.RealName, USERS.UserName, USERS.Klan, BORD.Plads, BORD.FRB
FROM BORD INNER JOIN USERS ON BORD.Bruger = USERS.User_ID;"
Avatar billede terry Ekspert
06. februar 2002 - 19:58 #2
..iceman hows it going here?
Avatar billede tbm_iceman Nybegynder
06. februar 2002 - 22:33 #3
sorry for my late answer was on a school trip.

Well it is not going well.
It is from two separated Databases so I can't make a join/innerjoin...
Avatar billede terry Ekspert
07. februar 2002 - 08:18 #4
My suggestion was to PUT them both in the same dB, what is stopping you from doing that?
Avatar billede tbm_iceman Nybegynder
10. februar 2002 - 23:32 #5
Isn't possible... The databases are from two diffrent sites, so I would have to updating them all the time then.
Avatar billede terry Ekspert
11. februar 2002 - 08:56 #6
OK! I cant see exactly how your database(s) look, but if I am correct then you could turn your selects around. What I mean is select from bord first, here you know (I think) that these are the USERS who are "tilmeldt". Then you only need to make a select on USERS to get the other data needed! Or am I missing something?
Avatar billede tbm_iceman Nybegynder
28. maj 2002 - 13:27 #7
Closing Question!
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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