<!--#INCLUDE FILE="config.asp" -->
<!--#INCLUDE FILE="inc_func_common.asp" -->
<%
Server.ScriptTimeOut = 180 ' drv: Set to 3 minutes or set higher if needed. I have no idea.
set my_Conn = Server.CreateObject("ADODB.Connection")
my_Conn.Open strConnString
Call GetMembers()
my_Conn.Close
set my_Conn = nothing
Sub GetMembers()
dim strSql, rs
strSql = "SELECT " & strDbTable & "Author.Author_ID, " &_
strDbTable & "Author.No_of_posts, " &_
strDbTable & "Author.Username " &_
" FROM " & strDbTable & "Author " &_
" WHERE " & strDbTable & "Author.No_of_posts > 0 " &_
" ORDER BY " & strDbTable & "Author.Author_ID;"
set rs = Server.CreateObject("ADODB.Recordset")
rs.open strSql, my_Conn
response.write("<table cellpadding=""2"" cellspacing=""0"" border=""1"">" & vbCrLf &_
"<tr valign=""bottom"" align=""center""><td align=""left""><b>Member's Name</b></td><td><b>M_Post<br>Count</b></td><td><b>Record<br>Count</b></td></tr>" & vbCrLf)
If not (rs.EOF or rs.BOF) then '## No replies found in DB
do until rs.EOF
response.write("<tr><td><b>" & rs.Fields("Username").Value & "</b></td><td align=""right"">" & rs.Fields("No_of_posts").Value & "</td><td align=""right"">")
if (rs.Fields("No_of_posts").Value > 0) then Call GetPosts(rs.Fields("Author_ID").Value,rs.Fields("No_of_posts").Value)
response.write("</td></tr>" & vbCrLf)
rs.MoveNext
loop
End If
response.write("</table>")
rs.close
set rs = nothing
End Sub
Sub GetPosts(intMemberID,intPostCount)
dim strSql, rs, memberpostcount
memberpostcount = intPostCount
strSql = "(SELECT " & strDbTable & "Author.Author_ID, " &_
strTablePrefix & "Topic.Topic_ID, " &_
" 0 AS REPLY_ID, " &_
strTablePrefix & "Topic.T_DATE AS R_DATE " &_
" FROM " & strDbTable & "Author LEFT JOIN " & strTablePrefix & "Topic ON " &_
strDbTable & "Author.Author_ID = " & strTablePrefix & "Topic.Start_Thread_ID " &_
" WHERE (((" & strDbTable & "Author.Author_ID)=" & intMemberID & "))) UNION ALL " &_
" (SELECT " & strDbTable & "Author.Author_ID, " &_
strTablePrefix & "REPLY.Topic_ID, " &_
strTablePrefix & "REPLY.REPLY_ID, " &_
strTablePrefix & "REPLY.R_DATE " &_
" FROM " & strDbTable & "Author LEFT JOIN " & strTablePrefix & "REPLY ON " &_
strDbTable & "Author.Author_ID = " & strTablePrefix & "REPLY.R_AUTHOR " &_
" WHERE (((" & strDbTable & "Author.Author_ID)=" & intMemberID & "))) " &_
" ORDER BY R_DATE DESC;"
set rs = Server.CreateObject("ADODB.Recordset")
'rs.cachesize = strPageSize
rs.open strSql, my_Conn, 3
If not (rs.EOF or rs.BOF) then '## No replies found in DB
rs.movefirst
response.write(rs.Recordcount)
do until rs.EOF
If (rs.Fields("REPLY_ID").Value > 0) Then
Call UpdateReply(rs.Fields("REPLY_ID").Value,memberpostcount)
Else
If (rs.Fields("Topic_ID").Value > 0) Then Call UpdateTopic(rs.Fields("Topic_ID").Value,memberpostcount)
End If
' drv: subtract one from post count
If (memberpostcount > 0) then memberpostcount = memberpostcount - 1
rs.MoveNext
loop
End If
rs.close
set rs = nothing
End Sub
Sub UpdateReply(intReplyID,intMemberPostCount)
dim strSql
'## Forum_SQL
strSql = "UPDATE " & strTablePrefix & "REPLY " &_
" SET " & strTablePrefix & "REPLY.R_POSTS = " & intMemberPostCount & " " &_
" WHERE (" & strTablePrefix & "REPLY.REPLY_ID = " & intReplyID & ");"
my_conn.Execute (strSql)
End Sub
Sub UpdateTopic(intTopicID,intMemberPostCount)
dim strSql
'## Forum_SQL
strSql = "UPDATE " & strTablePrefix & "Topic " &_
" SET " & strTablePrefix & "Topic.T_POSTS = " & intMemberPostCount & " " &_
" WHERE (" & strTablePrefix & "Topic.Topic_ID = " & intTopicID & ");"
my_conn.Execute (strSql)
End Sub
%>