% Option Explicit %> <% Session.Timeout = 1000 'Set the response buffer to true as we maybe redirecting Response.Buffer = True 'Dimension variables Dim intNoOfDays 'Holds the number of days to delete posts from Dim intForumID 'Holds the forum ID number Dim lngNumberOfTopics 'Holds the number of topics that are deleted Dim lngPollID 'Holds the poll ID if there is one to delete Dim rsThread 'Holds the threads recordset Dim intPriority 'Holds the topic priority to delete 'Initilise variables lngNumberOfTopics = 0 'get teh number of days to delte from intNoOfDays = CInt(Request.Form("days")) intForumID = CInt(Request.Form("FID")) intPriority = CInt(Request.Form("priority")) 'Get all the Topics from the database to be deleted 'Initalise the strSQL variable with an SQL statement to get the topic from the database strSQL = "SELECT " & strDbTable & "Topic.Topic_ID, " & strDbTable & "Topic.Poll_ID FROM " & strDbTable & "Topic " If intForumID = 0 Then strSQL = strSQL & "WHERE " & strDbTable & "Topic.Last_entry_date < " & strDatabaseDateFunction & " - " & intNoOfDays Else strSQL = strSQL & "WHERE (" & strDbTable & "Topic.Last_entry_date < " & strDatabaseDateFunction & " - " & intNoOfDays & ") AND (" & strDbTable & "Topic.Forum_ID=" & intForumID & ")" End If If intPriority <> 4 Then strSQL = strSQL & " AND (" & strDbTable & "Topic.Priority=" & intPriority & ")" strSQL = strSQL & ";" 'Query the database rsCommon.Open strSQL, adoCon 'Create a record set object to the Threads held in the database Set rsThread = Server.CreateObject("ADODB.Recordset") 'Loop through all the topics to get all the thread in the topics to be deleted Do While NOT rsCommon.EOF 'Update the number of topics deletd lngNumberOfTopics = lngNumberOfTopics + 1 'Get the Poll ID lngPollID = CLng(rsCommon("Poll_ID")) 'See if there are any guest posters and delete thier names form the guest name table 'Initalise the strSQL variable with an SQL statement to get the topic from the database strSQL = "SELECT " & strDbTable & "Thread.Thread_ID FROM " & strDbTable & "Thread WHERE " & strDbTable & "Thread.Topic_ID=" & rsCommon("Topic_ID") & ";" 'Query the database rsThread.Open strSQL, adoCon 'Loop through and delete al names in the guest name table Do While NOT rsThread.EOF 'First we need to delete any entry in the GuestName table incase this was a guest poster posting the message strSQL = "DELETE FROM " & strDbTable & "GuestName WHERE " & strDbTable & "GuestName.Thread_ID=" & CLng(rsThread("Thread_ID")) & ";" 'Excute SQL adoCon.Execute(strSQL) 'Move next rsThread.MoveNext Loop 'Close the rs rsThread.Close 'Delete the thread strSQL = "DELETE FROM " & strDbTable & "Thread WHERE " & strDbTable & "Thread.Topic_ID =" & rsCommon("Topic_ID") & ";" 'Delete the threads adoCon.Execute(strSQL) 'If there is a poll delete that as well If lngPollID > 0 Then 'Delete the poll choice strSQL = "DELETE FROM " & strDbTable & "PollChoice WHERE " & strDbTable & "PollChoice.Poll_ID =" & lngPollID & ";" 'Delete the threads adoCon.Execute(strSQL) 'Delete the poll choice strSQL = "DELETE FROM " & strDbTable & "Poll WHERE " & strDbTable & "Poll.Poll_ID =" & lngPollID & ";" 'Delete the threads adoCon.Execute(strSQL) End If 'Move to the next record rsCommon.MoveNext Loop 'Initalise the strSQL variable with an SQL statement to get the topic from the database strSQL = "DELETE FROM " & strDbTable & "Topic " If intForumID = 0 Then strSQL = strSQL & "WHERE " & strDbTable & "Topic.Last_entry_date < " & strDatabaseDateFunction & " - " & intNoOfDays Else strSQL = strSQL & "WHERE (" & strDbTable & "Topic.Last_entry_date < " & strDatabaseDateFunction & " - " & intNoOfDays & ") AND (" & strDbTable & "Topic.Forum_ID=" & intForumID & ")" End If If intPriority <> 4 Then strSQL = strSQL & " AND (" & strDbTable & "Topic.Priority=" & intPriority & ")" strSQL = strSQL & ";" 'Delete the topics adoCon.Execute(strSQL) 'Update post count updateTopicPostCount(intForumID) 'Reset Server Objects Set rsThread = Nothing rsCommon.Close Set rsCommon = Nothing adoCon.Close Set adoCon = Nothing %>