webForumDet fria alternativet

Optimerad kod

11 svar · 275 visningar · startad av Thompa__85

Thompa__85Medlem sedan aug. 2002600 inlägg
#1

Hejsan! Jag håller på försöka lära mig optimera min ASP kod, denna kod har jag, som jag vill optimera så mycket det bara går.. har ni några förslag?

if request.querystring("action")="spara" then
if session("id") <> request.querystring("id") then
rs.addnew
rs("namn")=session("user")
rs("inlagg")=request.form("requiredinlagg")
rs("gbid")= request.querystring("id")
rs("privat")=request.form("privat")
rs("namnid")=session("id")
rs("datum") = now
rs.update

Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM anv where id='"&session("id")&"'"
rs.Open Addera, Connect, 3, 3 
	
rs("gast") = gast + 1
rs("status") = rs("status") + 90
rs.update
	
if rs("gast")&"" = "" then 
gast = 0
else 
gast = rs("gast")
end if
response.redirect "gastbok.asp?id="&session("id")
end if
end if

Tacksam för all hjälp jag kan få :)

PalleMedlem sedan apr. 20003 174 inlägg
#2

..ser ut som det fattas lite kod för att ens få det där att fungera korrekt.
Kan du inte posta all relaterad kod så blir det mycket enklare att se helheten. :)

Thompa__85Medlem sedan aug. 2002600 inlägg
#3
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("databas/databas.mdb")
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM gb where gbid='"&request.querystring("id")&"' order by id desc"
rs.Open Addera, Connect, 3, 3 

if request.querystring("action")="spara" then
if session("id") <> request.querystring("id") then
rs.addnew
rs("namn")=session("user")
rs("inlagg")=request.form("requiredinlagg")
rs("gbid")= request.querystring("id")
rs("privat")=request.form("privat")
rs("namnid")=session("id")
rs("datum") = now
rs.update

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath ("databas/databas.mdb")
Set rs = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM anv where id='"&session("id")&"'"
rs.Open Addera, Connect, 3, 3 
	
rs("gast") = gast + 1
rs("status") = rs("status") + 90
rs.update
	
if rs("gast")&"" = "" then 
gast = 0
else 
gast = rs("gast")
end if
response.redirect "gastbok.asp?id="&session("id")
end if
end if

Bättre? ;)

PalleMedlem sedan apr. 20003 174 inlägg
#4

Japp, bättre. :)

En fråga bara.. vad gör denna koden:

[red]if rs("gast")&"" = "" then 
	gast = 0
else 
	gast = rs("gast")
end if[/red]

..ser inte ut att ha något direkt syfte. ;)

Thompa__85Medlem sedan aug. 2002600 inlägg
#5

Palle skrev:

Japp, bättre. :)

En fråga bara.. vad gör denna koden:

[red]if rs("gast")&"" = "" then 
	gast = 0
else 
	gast = rs("gast")
end if[/red]

..ser inte ut att ha något direkt syfte. ;)

Hmm nja, inte vad jag kan komma på faktiskt :/

PalleMedlem sedan apr. 20003 174 inlägg
#6

hehe, ok. ;)

Här kommer en variant på en optimering.

[red]If trim(Request.Querystring("action")) = "spara" Then
	If trim(Session("id")) <> trim(Request.Querystring("id")) Then

		Dim strName, strPost, intGbID, strPrivate, intNameID, strDate, Connect
		strName = Session("user")
		strPost = Replace(Request.Form("requiredinlagg"), "'", "''")
		intGbID = Request.Querystring("id")
		strPrivate = Request.Form("privat")
		intNameID = Session("id")
		strDate = Now()

		Set Connect = Server.CreateObject("ADODB.Connection")
			Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("databas/databas.mdb")

				Connect.Execute("INSERT INTO gb(namn,inlagg,gbid,privat,namnid,datum) VALUES('"& strName &"', '"& strPost &"', "& intGbID &", '"& strPrivate &"', "& intNameID &", '"& strDate &"')"),,128
				Connect.Execute("UPDATE anv SET gast=gast+1, status=status+90 WHERE id="& Session("id")),,128

			Connect.Close
		Set Connect = Nothing

		Response.Redirect "gastbok.asp?id="& session("id")

	End If
End If[/red]

..här har jag gissat mig till datatyperna i databasen så dessa kan du ju behöva ändra lite på.

Thompa__85Medlem sedan aug. 2002600 inlägg
#7

Tack! Det verkar ha gjort susen! Så det är en stabil optimering eller?

PalleMedlem sedan apr. 20003 174 inlägg
#8

..ja, den torde vara mer stabil nu än tidigare. ;) :bire

Thompa__85Medlem sedan aug. 2002600 inlägg
#9

shysst! :)

Thompa__85Medlem sedan aug. 2002600 inlägg
#10

En fråga, varför har du gjort så här?

strPost = Replace(Request.Form("requiredinlagg"), "'", "''")
PalleMedlem sedan apr. 20003 174 inlägg
#11

Databasen inte kan hantera ' <- tecken så om
någon skriver ett sådant tecken i inlägget så får du felmeddelande..

Den replace-snutten förhindrar detta. :)

trexterMedlem sedan mars 20021 889 inlägg
#12

Använder man access ska man väl escapa |-tecknet också?!

142 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)