webForumDet fria alternativet

Spara värden globalt utan global.asa?

ASP

3 svar · 241 visningar · startad av jimpa

Medlem sedan jan. 2001361 inlägg
Frågan#1

Hej,

På en del av mina sidor hade jag tänkt att includera en fil som heter "settings.asp" som ska innehålla följande kod:

SQL = "SELECT * FROM Settings"
	Set RS = myConn.Execute(SQL)

Settings_URL = RS("sURL")
Settings_SiteName = RS("sSiteName")
Settings_ValidFileType = RS("sValidFileType")
Settings_MaxFileSize = RS("sMaxFileSize")
Settings_LogoURL = RS("sLogoURL")
Settings_CopyrightText = RS("sCopyRightText")

RS.Close
Set RS = Nothing

Följande kod kommer alltså att köras varje gång någon tillträder dessa sidor, vilket känns lite onödigt. Dessa variablar måste väl gå att spara globalt på något sätt eller hur ska man göra. global.asa känns ju som den effektivaste lösningen, men jag kan dock inte använda den varianten. Kanske kan man använda sig utav "application" vad det nu innebär? Hur skulle du göra?

Mvh Jimpa

Medlem sedan juni 200032 967 inlägg
#2

Jag hade använt mig av application-objekt, och en liten ifsats-runt.

if application("Settings_URL") = "" then ' bara en koll om någon applikationsvariabel finns.
	SQL = "SELECT * FROM Settings"
	Set RS = myConn.Execute(SQL)

	Application("Settings_URL") = RS("sURL")
	Application("Settings_SiteName") = RS("sSiteName")
	Application("Settings_ValidFileType") = RS("sValidFileType")
	Application("Settings_MaxFileSize") = RS("sMaxFileSize")
	Application("Settings_LogoURL") = RS("sLogoURL")
	Application("Settings_CopyrightText") = RS("sCopyRightText")
	RS.Close
	Set RS = Nothing
End if

Mvh

Medlem sedan jan. 2001361 inlägg
#3

Tack för ditt svar känns som en bra lösning men:
Om man ändrar i settings.asp, när visas ändringen för andra användare? och behövs inte "Application Lock, UnLock"?

Mvh Jimpa

Medlem sedan juni 200032 967 inlägg
#4

jimpa skrev:

Om man ändrar i settings.asp, när visas ändringen för andra användare?

När webbtjänsten startas om. Du kan ju också, när du ändrat någon applicationvariabel kalla på en sida som läser in allt på nytt. Antingen en ny sida med samma kod, eller lägg till ett villkor i if-satsen:

if application("Settings_URL") = "" or request.querystring("doitagain") <> "" then

Släng bara på en querystring när du kallar på någon sida då.

och behövs inte "Application Lock, UnLock"?

Jo, om flera användare kan sätta om värdet samtidigt kan du använda .Lock och .Unlock. Men, nej, det behövs inte. Jag använder det aldrig.

253 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)