最近总算是有点空了,打算把我的dvbbs 6.x access转移到cnforums,遇到了一些问题,写在这里,希望对以后的朋友有所帮助。

首先,打算用宝玉的升级程序来进行数据库的升级。在导出数据的时候碰到一些错误,主要是由于空值引起的。我将数据库的空值条目填充数据,然后再导入就没有问题了。

其次,在进行导出的时候发现,程序将所有的帖子都放到了forums_Threads表中,这显然是错误的,因为forums_Threads表中应该只存在主题贴。我察看的程序的源码和存储过程,由于对cnforums不熟悉,接触.net的时间也不长,并没有找到问题所在。还在用户表和短消息都可以正常转换,现在的问题只剩下帖子表了。

没有想到很好的解决办法,对比了dv和cnforums的数据库结构,发现还是比较相似的,可以考虑手工修改数据库结构。我首先将dv的数据库结构、字段改为cnforums的,然后导入到sql中即可。用这种方法总算是解决了问题。

另外,cnforums不知道在哪里删除用户,只看到了移除权限,但是用户仍然是存在的。不能批量删除某个用户的帖子,因为论坛里经常出现一些非法言论显然也是不太方便的。不过,这个问题可以通过自己写存储过程来解决。另外,缺少首页调用,为了省事,我用asp写了一个,先用着,随后附上源码。

首先,应当感谢宝玉的辛勤工作,为大家提供了一个很优秀的论坛,尽管目前还有一些不尽人意之处,但是,瑕不掩瑜。

<%
dim conn
dim connstr
dim db
set conn=server.createobject("ADODB.CONNECTION")
connstr="Provider=MSDASQL; Driver={SQL Server}; Server=(local); Database=bbs; UID=sa; PWD=321;"
conn.open connstr

sub CloseConn()
 conn.close
 set conn=nothing
end sub

    if request.querystring("shu")="" or request.querystring("shu")=0 then
       shu=10
    else
       shu=CINT(request.querystring("shu"))
    end if
 
sqlt="select forums_Posts.ThreadID,forums_Posts.Subject from forums_Posts,forums_Threads where forums_Posts.ThreadID=forums_Threads.ThreadID order by forums_Posts.ThreadID desc"
Set rst=Server.CreateObject("ADODB.RecordSet")
rst.Open sqlt,conn,1,1
 
    if rst.eof and rst.bof then %>
      document.write('<p align="center">Sorry! 没有帖子</p>'); 
    <% else
        news=1 
 do while not rst.eof %>
    document.write('<table width="160" height="10" cellpadding="2" cellspacing="1" bgcolor="#FFFFFF"><TR><td width="15" bgColor=#f1f1f1><img src="/shop/image/arrow2.gif" width="15" height="15"></td><TD width="133" bgColor=#f1f1f1><a href="ShowThread.aspx?PostID=<%=rst("ThreadID")%>" title="<%=rst("Subject")%>" target="_blank"><%=rst("Subject")%></a></TD></TR></table>');
 <% news=news+1
        if news>shu then exit do 
 rst.movenext          
 loop      
    end if 
    rst.close
    set rst=nothing  
 call CloseConn()
 %>