/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Flere databasekald
Fra : Voller


Dato : 05-05-03 11:29

Hej NG.


Jeg har brug for lidt teori om databasekald. Lad os sige at jeg har f.eks.
tre databasekald på samme side. De tre kald deler et connection-objekt og
returnerer hver især et recordset. Hvordan skal disse objekter oprettes og
lukkes ned, hvis man vil optimere ydelsen på sin side?

Dim objConn, objRS
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = EtEllerAndet
objConn.Open
Set objRS = objConn.Execute(SQL-Statement el. lignende)

'Gør noget ved recordsættet

Nu kommer det springende punkt så. Jeg skal både bruge objConn og objRS
senere på siden efter noget flad HTML. Hvad er så mest korrekt:

1. Luk og nedlæg alt, og opret objekterne senere igen.
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing

2. Gør ingenting, bare kør videre med alt åbent.

3. Luk objRS og objConn
objRS.Close
objConn.Close

4. Noget helt fjerde som jeg ikke har tænkt på?



Mvh.Voller.




 
 
Jens Gyldenkærne Cla~ (05-05-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 05-05-03 11:45

Voller skrev:

> Nu kommer det springende punkt så. Jeg skal både bruge objConn
> og objRS senere på siden efter noget flad HTML.

objConn er velsagtens den samme connection hele vejen igennem? Men
er objRS ét postsæt du bruger tre gange, eller er det tre
forskellige postsæt (lagt på skift i samme variabel)?

Hvis siden ellers kører rimelig hurtigt vil jeg holde connection-
objektet åbent indtil det tredje postsæt er brugt. Hvis det er tre
forskellige postsæt vil jeg lukke hvert postsæt umiddelbart efter
brug, men beholde variablen - hvis man altså vil bruge samme
variabelnavn til alle postsæt.

For overskuelighedens skyld vil jeg nemlig hellere bruge en
variabel til hvert postsæt - og her gælder de almindelige
retningslinjer ("hit and run") om at oprette det så sent som muligt
og nedlægge det så hurtigt som muligt.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Voller (05-05-2003)
Kommentar
Fra : Voller


Dato : 05-05-03 11:55

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> skrev
> objConn er velsagtens den samme connection hele vejen igennem? Men
> er objRS ét postsæt du bruger tre gange, eller er det tre
> forskellige postsæt (lagt på skift i samme variabel)?

objConn er ganske rigtigt den samme connection gennem al koden på hele
siden. objRS er tre forskellige recordsets der bliver hentet ud af en
database af tre omgange.


> Hvis det er tre
> forskellige postsæt vil jeg lukke hvert postsæt umiddelbart efter
> brug, men beholde variablen - hvis man altså vil bruge samme
> variabelnavn til alle postsæt.

Altså objRS.Close men ikke Set objRS = Nothing?

Tak for hjælpen.



Jens Gyldenkærne Cla~ (05-05-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 05-05-03 13:34

Voller skrev:

>> Hvis det er tre
>> forskellige postsæt vil jeg lukke hvert postsæt umiddelbart
>> efter brug, men beholde variablen - hvis man altså vil bruge
>> samme variabelnavn til alle postsæt.
>
> Altså objRS.Close men ikke Set objRS = Nothing?

Ja. Der er ingen grund til at holde postsættet åbent længere end
højst nødvendigt. Jeg er ikke sikker på om det gør nogen forskel om
du også fjerner variabelreferencen (Set objRs = Nothing) eller ej -
men som skrevet vil jeg i dit tilfælde lade variablen leve til den
skal åbnes næste gang.

Jeg er dog en varm tilhænger af beskrivende variabelnavne, så jeg
ville nok stadig foretrække tre forskellige rs-variabler - fx som
her:

Dim rsMedlemmer, rsArtikler, rsAbonnementer

Hvis koden så fejler på et tidspunkt er det hurtigt at se hvilket
databasekald der volder problemer.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408935
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste