webForumDet fria alternativet

En funderare

ASP

5 svar · 219 visningar · startad av nill

Medlem sedan okt. 2001387 inlägg
Frågan#1

Fick en funderare när jag skrev följande kod. Jag öppnar ju först databasen men sedan kan du ju hända att användaren blir vidareskickat. Stängs inte databaskopplingen då? eller kod efter Response.Redirect behandlas också?

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\\dekrim\\data\\datan.mdb")

Select Case Request.Form("syssla")

Case "Burkar"

	VarDammit = "INSERT INTO stotar (user, syssla, chans, vinst, natt) VALUES (" & Session("userID") & ", '" & Request.Form("syssla") & "', " & Chans & ", " & Pengar & ", " & Natt & ") "
	Connect.Execute VarDammit,,128

	Response.Redirect "/dekrim/asp/stotar.asp?pyssel=sysslar"

End Select

Connect.Close
Set Connect = Nothing
Medlem sedan dec. 200012 464 inlägg
#2

Koden efter response.redirect körs inte.

Databaskopplingen stängs efter ett tag, ADO märker att det inte finns några referenser till objektet.

Medlem sedan juli 2001225 inlägg
#3

skriv in

<%
Response.Buffer=True
%>

så körs sidan innan den skickar något till webbläsaren

Medlem sedan okt. 2001387 inlägg
#4

Ja klart att databaskopplingen stängs efter ett tag. Men alla säger ju att det är viktigt att stänga alla databaskopplingar annars slöas servern ner.

ska man alltid använda Response.Buffer=True då ? så att alla databaskopplingar stängs (servern mår bra).

Medlem sedan juni 20003 076 inlägg
#5

du kanske kan köra...

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("\dekrim\data\datan.mdb") 

Select Case Request.Form("syssla") 

Case "Burkar" 

VarDammit = "INSERT INTO stotar (user, syssla, chans, vinst, natt) VALUES (" & Session("userID") & ", '" & Request.Form("syssla") & "', " & Chans & ", " & Pengar & ", " & Natt & ") " 
Connect.Execute VarDammit,,128 
Connect.Close 
Set Connect = Nothing

Response.Redirect "/dekrim/asp/stotar.asp?pyssel=sysslar" 

Case else
Connect.Close 
Set Connect = Nothing
End Select

...istället.

Medlem sedan okt. 2001387 inlägg
#6

jo det är klart.
men då känns det enklare att skriva Response.Buffer=True istället för att skriva om en massa kod.

fast det beror ju helt på vilket som är bäst, för servern osv.

271 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)