Avatar billede weis Nybegynder
26. juli 2007 - 04:21 Der er 8 kommentarer og
1 løsning

include og/eller server.execute

Jeg har fået et problem med min nuværende opstilling. Jeg bruger pt. <!-- #include file="fil.asp" --> når jeg vil hente flere filer ind i et dokument, men jeg har så fået det problem at rækkefølgende på disse filer kan ændre sig alt efter en prioritet i en database.

Jeg er derfor nu begyndt at lave det hele om til server.execute, men der har jeg fået problemer med min database-forbindelse.
Jeg har min "main" fil hvori jeg laver den databaseforbindelse og henter min info ved rs("id") og jeg bruger den samme forbindelse på de sider der skal inkluderes, men det virker ikke efter jeg er gået over til server.execute kan det "redes" eller hvad skal man gøre (og jeg vil helst undgå at skulle lave en ny databaseforbindelse på alle mine undersider)
Avatar billede keysersoze Ekspert
26. juli 2007 - 08:05 #1
hvis du vil bruge server.execute er du tvunget til at lave flere db-forbindelser da hver execute kører helt selvstændigt - du vil heller ikke kunne genbruge variabler, pånær sessions/cookies, på tværs af side. eneste alternativ er include.
Avatar billede weis Nybegynder
26. juli 2007 - 08:08 #2
hmm... men include er ikke dynamisk, så jeg kan ikke bestemme rækkefølgen af dem udfra min liste i databasen!

er der virkelige ikke anden udvej end at lave sessions og forbindelser!!!
Avatar billede weis Nybegynder
26. juli 2007 - 08:23 #3
jeg tror måske jeg vil kunne få det til at virke ved at lave sessions i starten af min "main" og så tømme alle sessions i bunden.

Har det nogen betydning at jeg laver en 20-30 sesstions i så kort en periode eller er der en begrænsning på det antal man kan lave?
Avatar billede softspot Forsker
26. juli 2007 - 10:00 #4
Includes og Server.Execute har hver sit anvendelsesområde.

Min egenerfaring (groft defineret) er at includes skal bruges som funktionsbibliotek for sider, f.eks. opsætning af forbindelser og generelle funktioner som kan have interesse for mere end én side på et website.

Server.execute skal bruges til at inkludere (selvstændige) moduler af layout og funktionalitet. Jeg plejer at tænke på Server.Execute som en mulighed for at indkapsle forretningsområder, der ikke har behov for at kende til den omverden de eksisterer i.

For såvidt angår din problemstilling, så er der ikke umiddelbart noget i vejen med at lave forbindelser til databasen mange gange i løbet af opbygningen af din side. Hvis du kører på en IIS 6, så sker connectionpooling automatisk for dig og du skal derfor bare sørge for at forbinde så sent som muligt og frigive forbindelsen så tidligt som muligt, således du låser resurserne kortest mulig tid.

Jeg ved det er en simplificering af problemstillingen, men det er i høj grad muligt at bygge et site op vha. server.execute, du skal bare sørge for at anvende Server.Execute og include til de rette formål. Det kræver dog en anden måde at tænke på, når du opdeler dine sider - du skal nok over i at tænke på en side som en samling af isolerede komponenter der bare plugges ind i siden, der hvor behovet er...
Avatar billede weis Nybegynder
26. juli 2007 - 10:06 #5
Jeg har nu fået alle min sider til at virke, men! tanken bag dem er at de er nogle små "feeds" som man kan tilføje under sin profil (kalender, nyheder, events, blog osv.) og så når man går ind på den så skal den åbne de valgt feeds og i den rækkefølge man vil have dem i. Jeg er så stødt ind i et nyt problem med det.

jeg har lavet følgende løkke, som skulle indsætte feedsne i den rækkefølge de er valgt i:

<%    privoStor = rs("privoStor")
   
            privoStor = split(privoStor, ",")
   
            for i = 0 TO UBound(privoStor)

                SprivoSQL = "select * from feed where rang = 1 and id = " & privoStor(i)
                set rsS = ConnInfo.execute(SprivoSQL)
       
                if not rsS.eof then
                    server.Execute (rsS("link"))
                end if
                rsS.close
                    set rsS = nothing

            next %>

men den kommer med en fejl der siger:

Fejltype:
Serverobjekt, ASP 0228 (0x80004005)
Kaldet til Server.Execute mislykkedes under indlæsningen af siden.

hvad gør jeg galt????
Avatar billede softspot Forsker
26. juli 2007 - 10:13 #6
Det sker typisk fordi den side du prøver at indlæse ikke findes...
Avatar billede weis Nybegynder
26. juli 2007 - 10:19 #7
hehe... typisk, havde gemt filen som "nyheder.asp" og kaldt den for "nyhed.asp" i databasen... synes jeg havde tjekket det hele igennem... takker for hjælpen, nu virker det perfekt

kom med svar, så er der point :)
Avatar billede softspot Forsker
26. juli 2007 - 10:25 #8
Velbekomme :)
Avatar billede softspot Forsker
26. juli 2007 - 10:41 #9
Tak for point :)
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