Avatar billede dcasso Nybegynder
17. august 2001 - 13:09 Der er 8 kommentarer og
1 løsning

Skal bruge ideer til kodeoptimering

Jeg er igang med at lave et skema på en hjemmeside, bestående af pt. 16 kolonner og 42 rækker, hver celle har fire muligheder som læses ud fra fire felter i en db.

Mit problem er at både kolonner og rækker læses fra en db og kører på en måde som følgende pseudokode:
Læs en kolonne fra db\'en
    Læs en række fra db\'en
        læs de fire muligheder
    Løkke
Løkke

Koden tager over 1,5 minut og udføre og jeg har deklareret alle variable (og sørget for at bruge så få som mulige) og lukket db\'erne og rs\'erne når det er nødvendigt, som jeg kan se. Nogle der har en del konkrete forslag for hvordan man kan få en kortere gennemførselstid. Det er ekstermt vigtigt, da brugeren kommer ind på denne side ca. 10 gange i løbet af et besøg og der for hver gang oftest kun vil være sket en ændring i en celle.

Det hele køres fra en Access\'db og har ingen muligheder for andre typer af db\'ere, som eks. SQL-server o.lign.
Mvh
Dennis    
Avatar billede zeth Nybegynder
17. august 2001 - 13:26 #1
hmm virker den fint nok, når der er gået det der 1,5 min.?
Avatar billede dcasso Nybegynder
17. august 2001 - 13:52 #2
Det virker fint nok.

Jeg glemte også at tilføje noget om de fire muligheder, nemlig at de består sådan set 36 mulige celler, hvilket jo må være en medvirkende årsag til i hvert fald et stort hukommelsesforbrug
Avatar billede proaccess Nybegynder
18. august 2001 - 08:46 #3
Det kan være jeg er WAY OFF her, men jeg tror tiden går med at slå op og lukke databasen. Kan du ikke læse alle informationer i et recordset, og derefter opdele i kolonner og rækker i ASP...?

Du skal så have en forespørgsel i Access, som \"samler\" informationerne, så de kommer til at se således ud:
Kolonne, KolonneNavn, Række, RækkeNavn, Mug1, Mug2, Mug3, Mug4
Avatar billede torbenkoch Nybegynder
18. august 2001 - 11:01 #4
Lad os se din faktiske kode...
Avatar billede dcasso Nybegynder
18. august 2001 - 11:49 #5
Proaccess:
Jeg tror nu ikke du er WAY OFF, som følge af, at jeg faktisk kun åbner db\'en en gang men brug 42 recordsets og dette burde jeg da kunne nedsætte ved at gøre det på den måde.

Og da jeg ikke har tænkt på noget i den stil selv, så bør du jo også have point\'ene. Jeg har dog et spm. mere som jeg lige vil høre om du også kan svare på, hvis du da gider. Normalt skriver man
Open et_eller_andet from table, hvordan skriver man det ved en forespørgsel?

Torbenkoch:
Normalt vil jeg også have vist koden, men denne gang er jeg 100% sikker på den ikke ville hjælpe i nogle mulige besvarelser. Samt at få nogle mere generelle svar, kan jo også nemmere bruges af andre
Avatar billede proaccess Nybegynder
19. august 2001 - 08:43 #6
Den SQL, du skal bruge afhænger af hvordan dine data er organiseret... Men princippet er at du åbner en SQL-forespørgsel i stedet for en tabel.

Har du fx. alle mulighederne i tabellen \"Muligheder\", alle kolonne-navne i tabellen \"Kolonner\" og alle række-navne i tabellen \"Rækker\" så kunne det se således ud:

SQL=\"SELECT M.Kolonne, K.KolonneNavn, M.Række, R.RækkeNavn, M.Mug1, M.Mug2, M.Mug3, M.Mug4 FROM Muligheder As M, Kolonner AS K, Rækker As R WHERE M.Kolonne=K.Kolonne AND M.Række=R.Række ORDER BY M.Kolonne, M.Række;\"

Avatar billede dcasso Nybegynder
19. august 2001 - 11:11 #7
Du bestemmer selvfølgelig selv om du vil svare og uanset hvad, så mange tak for hjælpen, havde jeg nu gemt en færdig forespørgsel i access, sådan at den var klar til brug og ikke skulle laves via asp (hvilket jo må spare tid), hvordan skulle jeg så kalde den?
Avatar billede burningice Nybegynder
19. august 2001 - 12:20 #8
du kan ikke kalde en foresprøgsel i access, men du kan jo kopiere sql strengen fra access ind i din asp side

altså strSql = \"din_streng_taget_fra_access\"
Avatar billede dcasso Nybegynder
19. august 2001 - 14:35 #9
Oki, det kunne jo være man kunne gøre det andet og man ved det jo ikke før man spørger :)

Tak til Cyberfessor og proaccess

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