webForumDet fria alternativet

Konstiga fel

ASP

1 svar · 252 visningar · startad av star

Medlem sedan apr. 200142 inlägg
Frågan#1

Hejsan kloka aspkodare

Jag får ett jätteskumt fel efter att ha uppdaterat en sida ett par gånger, eller egentligen kommer det upp två olika meddelanden.

1. Systemresursen har överskridits
2. Det finns inte tillräckligt minne för att slutföra den här åtgärden.

1 syftar precis som 2 till en rad som arbetar mot ett recordset. Eller om man så vill Rec.MoveNext

Jag chattade med en kille som påstod att det kunde röra sig om att koden på något sätt loopar databasförfrågan på servern och på det sättet överbelastar den. Vad tror ni.

Kodstycket här nedan skall i så fall innehålla det elaka felet. Om ni upptäcker några andra trevliga små fel när ni ser igenom den gör det inget om ni anmärker på dem också.


<%
Class cWork

Public Function Write(str)
Response.Write(str)
End Function

Public SkrivMetod
Public Sida
Public FolderPath
Private Con
Private Rec
Private SQL
Public Folder
Private Files
Private File
Private FSO
Private SubFolders
Private SubFolder
Private ServerPath
Private ParentFolder
Public ExecIn
Private gatherDir
Public FolderName
Public FolderParent

Public Sub Class_Initialize()
	ServerPath = Server.MapPath(".")
	Sida = Request.Servervariables("SCRIPT_NAME")
	Write("<form action='" & ExecIn & "?edit=" & Request.Form("edit") & "' method='post'>")
End Sub

Public Sub Class_Terminate()
Write("<p></form>")
Rec.Close
Con.Close
Rec = nothing
Con = nothing

End Sub

Public Sub Objects()

	' * * CONNECTION TO FSO DATABASE
	Server.ScriptTimeOut = "300"
	Set Con = Server.CreateObject("ADODB.Connection")
	Con.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & ServerPath & "\fso.mdb"
	SQL = "SELECT * FROM fso ORDER BY id"
	Set Rec = Server.CreateObject("ADODB.Recordset")
	Rec.Open SQL, Con, adOpenStatic, adLockOptimistic
	Write "Connection: " & Con & "<br>"
	Write "Sequel: " & SQL & "<br>"

	' * * CONNECTION TO FILESYSTEMOBJECT
	Set FSO = Server.CreateObject("Scripting.FileSystemObject")
	Set Folder = FSO.GetFolder(ServerPath & FolderPath)

	FolderName = Folder.Name
	FolderParent = Folder.ParentFolder.Name

	Write "Sökväg: " & ServerPath & "<br>"
	Write "Sida: " & Sida & "<br>"
	Write "Folder: " & FolderName & "<br>"
	Write "Folder parent name: " & FolderParent & "<br>"
	Write "<p>"

End Sub

Public Sub PrintFiles()
	' * * PRINT FILES
	Set Files = Folder.Files
	Write("FILES<br>")
	Dim FileNumber
	FileNumber = 0
	For Each File in Files
	Write("<input type='checkbox' name='images' value='" & File.name & "'> " & File.name & " " & File.Size & " " & File.ParentFolder.Name & "<br>")
	Next
	Do Until Rec.EOF
		For Each File in Files
		FileNumber = FileNumber +1
		If File.ParentFolder <> ServerPath then
			If File.name = Rec("name") AND Rec("parent") = "root" then
				If Rec("group") = Session("group") then
				Write("<input type='checkbox' name='images' value='" & File.name & "'> " & File.name & " " & File.Size & "<br>")
				End If
			End If
		Else
			If File.name = Rec("name") AND File.ParentFolder.name = Rec("parent") then
				Write("<input type='checkbox' name='images' value='" & File.name & "'> " & File.name & " " & File.Size &  "<br>")
			End If
		End If
		Next
		Rec.MoveNext
		Loop
End Sub

Public Sub PrintSubFolders()
	' * * PRINT SUBFOLDERS
	Set SubFolders = Folder.SubFolders
	Write("FOLDERS<br>")
	Dim FolderNumber
	FolderNumber = 0
	Do Until Rec.EOF
	If Rec("folder") = true OR Rec("folder") = "Ja" then
		For Each SubFolder in SubFolders
		FolderNumber = FolderNumber +1
		Write(FolderNumber)
		If SubFolder.ParentFolder <> ServerPath then
			If SubFolder.name = Rec("name") AND Rec("parent") = "root" then
				If Rec("group") = Session("group") then
				Write(" <a href='" & Sida & "?Type=" & FolderPath & "&SubFolder=" & SubFolder.Name & "&edit=" & Request.QueryString("edit") & "'><img src='images/folder.gif' border='0'></a>&nbsp;&nbsp;")
				Write("<a href='" & Sida & "?Type=" & FolderPath & "&SubFolder=" & SubFolder.Name & "&edit=" & Request.QueryString("edit") & "'>" & SubFolder.name & " </a><br>")
				End If
			End If
		Else
			If SubFolder.name = Rec("name") AND SubFolder.ParentFolder.name = Rec("parent") then
				If Rec("group") = Session("group") then
				Write("<a href='" & Sida & "?Type=" & FolderPath & "&SubFolder=" & SubFolder.Name & "&edit=" & Request.QueryString("edit") & "' class='blue'><img src='images/folder.gif' border='0'></a>&nbsp;&nbsp;")
				Write("<a href='" & Sida & "?Type=" & FolderPath & "&SubFolder=" & SubFolder.Name & "&edit=" & Request.QueryString("edit") & "'>" & SubFolder.name & " </a><br>")
				End If
			Else
			Write("An Error has occured")
			End If
		End If
		Next
	Else
	Write("Is not a folder: " & Rec("name") & "<br>")
	End If
	Rec.MoveNext
	Loop

End Sub

Public Sub PrintPath()
	' * * PRINT PATH
	Dim strToExec, objRegExp, myMatchesEtt, replaceString, strReplace, myMatchesTva
	strReplace = " "
	strToExec = FolderPath
	Set  objRegExp = New RegExp
	objRegExp.Global = true
	objRegExp.IgnoreCase = true
	objRegExp.Pattern = "\W"
	replaceString = objRegExp.Replace(strToExec, strReplace)
%>

Anropas genom följande


<%
Dim Star
Set Star = New cWork

If IsObject(Request.Querystring("SubFolder")) then
Star.FolderPath = "/images/" & Request.Querystring("SubFolder") & "/"
Else
Star.FolderPath = "/images/"
End If

Star.ExecIn = "verify.asp"
Star.SkrivMetod = "Startar "
Star.Objects
Response.Write("<p>")
Star.PrintContent
'Response.Write("<p>")
'Star.PrintPath
Response.Write("<p>")
Star.PrintSubFolders
Response.Write("<p>")
Star.PrintFiles
'Response.Write("<p>")
'Star.PrintAction
%>

Jag är mycket tacksam för alla typer av svar/kritik på min kodning.

Tack på förhand

Star

------------------
-----------------

Medlem sedan apr. 200142 inlägg
#2

Hmmm
Följande kodsnutt föll bort av någon anledning

Public Sub PrintAction()
Write("<input type='submit' value='import' name='action'>")
End Sub

Public Sub PrintContent()
	Response.Write(" " & SkrivMetod)
	Rec.MoveFirst											'<-- FELRAD
	Do Until Rec.EOF
		If Folder.name = Rec("name") then
		Response.Write(Rec("name") & "<br>")
		Response.Write(Rec("description"))
		end if
	Rec.MoveNext
	Loop
End Sub

End Class

------------------
-----------------

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