17. august 2001 - 13:09Der 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
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
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
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
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;\"
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?
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
Synes godt om
Ny brugerNybegynder
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.