webForumDet fria alternativet

Vad händer om...

ASP

6 svar · 206 visningar · startad av leniz

Medlem sedan aug. 2001676 inlägg
Frågan#1

Hej!

Undrar vad som händer om man har en kod där man använder samma namn på följande sätt?

sql="select * from Tabell 1"
set rs=databas.execute(sql)

Annan kod....

sql="select * from Tabell 2"
set rs=databas.execute(sql)

Annan kod....

Jag använder alltså namnen sql och rs två gånger utan att stänga dem emellan. Vad händer då? Det fungerar ju men jag antar att det inte är bra?

Och om jag sedan stänger rs:

rs.close
set rs=nothing

har jag då stängt båda öppnade rs eller bara en av dem?

Hoppas ni förstår vad jag menar!
Mvh Lena

Medlem sedan feb. 200112 078 inlägg
#2

Strängen ändrar innehåll och rs omdefineras med ny data. När du tilldelar rs data andra gången, försvinner den data som var i det från början. Således funkar det alldeles utmärkt att göra som du gör.

Medlem sedan aug. 2001676 inlägg
#3

Tack! Skönt att veta! =)

Medlem sedan dec. 20003 887 inlägg
#4

Andra gången du kör

Set rs = databas.Execute(sql)

får rs en ny referens till det objekt som Execute() returnerar snarare än att rs omdefinieras. Så om jag har förstått det hela så uppstår det ett visst minnesläckage om man inte stänger sitt recordset innan man "fyller det igen".
Inget jag tänker sätta några pengar på, men jag rekommenderar nog ändå att man stänger objekt, när man är klar med dom.

Medlem sedan mars 20016 260 inlägg
#5

Om ingenting annat är det good practice, iaf man redigerar kod osv så kan man glömma bort sådana saker..

Medlem sedan feb. 200112 078 inlägg
#6

Engine » Det är mer än jag vet, men får recordset:et verkligen en referens, snarare än data?

Men det är sant, good practice är alltid bäst.

Medlem sedan dec. 20003 887 inlägg
#7

OveRRidE skrev:

Engine » Det är mer än jag vet, men får recordset:et verkligen en referens, snarare än data?

Det är det jag är lite osäker på, när det gäller VBScript, därav mitt förbehåll. :)

Men, som sagt, good practice är alltid att föredra :)

258 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)