中国石凳联盟 登录注册

Dvbbs转Esou

摇滚时代··3 回复·560 浏览

发表回复

Dim dNew As New ADODB.Connection
Dim dOld As New ADODB.Connection
Dim rstNew As New ADODB.Recordset
Dim rstOld As New ADODB.Recordset

Private Sub Command1_Click() 主题转换
If rstNew.State 0 Then rstNew.Close
If rstOld.State 0 Then rstOld.Close

SQLquery = "SELECT * FROM Dv_bbs1 WHERE ParentID = 0 ORDER BY " "DateAndTime"
rstOld.CursorLocation = adUseClient
rstOld.Open SQLquery, dOld, adOpenKeyset, adLockPessimistic

SQLquery = "SELECT * FROM cpb_topic"
rstNew.CursorLocation = adUseClient
rstNew.Open SQLquery, dNew, adOpenKeyset, adLockPessimistic

Dim N As Long, J As Long
J = rstOld.RecordCount

Do
rstNew.AddNew
rstNew("f_username") = rstOld("UserName")
rstNew("f_title") = rstOld("Topic")
rstNew("f_content") = rstOld("Body")
rstNew("f_time") = rstOld("DateAndTime")
rstNew("f_bbsid") = rstOld("BoardID")
rstNew("f_ip") = rstOld("ip")
rstNew("f_oldid") = rstOld("RootID")
rstNew("f_hits") = "0"
rstNew("f_reply") = "0"
rstNew("f_lock") = "0"
rstNew("f_isvote") = "0"
rstNew("f_jinghua") = "0"
rstNew("f_topicmod") = "0"
rstNew("f_newbbsid") = "0"
rstNew("f_istop") = "2"
rstNew("f_sign") = "1,,1"

rstNew.Update
rstOld.MoveNext
N = N + 1
Me.Caption = N "/" J
Loop Until rstOld.EOF
End Sub

Private Sub Command2_Click() 跟贴转换

If rstNew.State 0 Then rstNew.Close
If rstOld.State 0 Then rstOld.Close
Dim rstTemp As New ADODB.Recordset

SQLquery = "SELECT * FROM Dv_bbs1 WHERE NOT(ParentID = 0) ORDER BY " "DateAndTime"
rstOld.CursorLocation = adUseClient
rstOld.Open SQLquery, dOld, adOpenKeyset, adLockPessimistic

SQLquery = "SELECT * FROM cpb_reply"
rstNew.CursorLocation = adUseClient
rstNew.Open SQLquery, dNew, adOpenKeyset, adLockPessimistic

Dim N As Long, J As Long, topic_ID As Long, ERROR As Long
J = rstOld.RecordCount

Do

If rstTemp.State 0 Then rstTemp.Close
SQLquery = "SELECT f_id FROM cpb_topic WHERE f_oldid = " rstOld("RootID")
rstTemp.CursorLocation = adUseClient
rstTemp.Open SQLquery, dNew, adOpenKeyset, adLockPessimistic
If Not rstTemp.EOF Then
topic_ID = rstTemp("f_id")
Else
ERROR = ERROR + 1 原动网数据库中已删除帖子不进行转换
End If


rstNew.AddNew
rstNew("f_username") = rstOld("UserName")
rstNew("f_content") = rstOld("Body")
rstNew("f_time") = rstOld("DateAndTime")
rstNew("f_bbsid") = rstOld("BoardID")
rstNew("f_ip") = rstOld("ip")
rstNew("f_topicid") = topic_ID
rstNew("f_sign") = "1,,1"

rstNew.Update
rstOld.MoveNext
N = N + 1
Me.Caption = N "/" J "/" ERROR
Loop Until rstOld.EOF


End Sub

Private Sub Command3_Click()
If rstNew.State 0 Then rstNew.Close
If rstOld.State 0 Then rstOld.Close

SQLquery = "SELECT * FROM cpb_topic"
rstOld.CursorLocation = adUseClient
rstOld.Open SQLquery, dNew, adOpenKeyset, adLockPessimistic

SQLquery = "SELECT * FROM cpb_reply"
rstNew.CursorLocation = adUseClient
rstNew.Open SQLquery, dNew, adOpenKeyset, adLockPessimistic

Dim N As Long, J As Long
J = rstOld.RecordCount

Do
rstOld("f_ip") = "192.168.1.1"
rstOld.Update
rstOld.MoveNext
N = N + 1
Me.Caption = N "/" J
Loop Until rstOld.EOF
End Sub

Private Sub Form_Load()
Dim pstr As String, strPath As String Open ADO 数据库
strPath = App.Path "" "new.mdb"
pstr = pstr "Provider=Microsoft.Jet.OLEDB.4.0"
pstr = pstr "Persist Security Info=False"
pstr = pstr "Data Source=" strPath "Jet OLEDB:Database Password=" RStr3
dNew.Open pstr

strPath = App.Path "" "old.mdb"
pstr = pstr "Provider=Microsoft.Jet.OLEDB.4.0"
pstr = pstr "Persist Security Info=False"
pstr = pstr "Data Source=" strPath "Jet OLEDB:Database Password=" RStr3
dOld.Open pstr

-------------------------------
Exit Sub 本行注释则删除原cpb表中已有的帖子

清除新cpb_replay表
SQLquery = "SELECT * FROM cpb_reply"
rstNew.CursorLocation = adUseClient
rstNew.Open SQLquery, dNew, adOpenKeyset, adLockPessimistic
If Not rstNew.EOF Then
rstNew.MoveFirst
Do
rstNew.Delete
rstNew.MoveNext
Loop Until rstNew.EOF
End If
Exit Sub


rstNew.Close
清除新cpb_topic表
SQLquery = "SELECT * FROM cpb_topic"
rstNew.CursorLocation = adUseClient
rstNew.Open SQLquery, dNew, adOpenKeyset, adLockPessimistic
If Not rstNew.EOF Then
rstNew.MoveFirst
Do
rstNew.Delete
rstNew.MoveNext
Loop Until rstNew.EOF
End If

End Sub

Private Sub Form_Unload(Cancel As Integer)
dNew.Close
dOld.Close

End Sub

点赞0 收藏

ESOU的CPB感觉很小巧,小巧的东西就是快,花哨的东西追求得腻了,有时候吃点素菜有益身心。

好不容易找到DV7.1转CPB2.0.8的转换程序,结果满心欢喜地测试,结果让人诧异,39M的数据库居然被减肥到17M,但随后就高兴不起来了,事实并非如此神奇, 这个转换程序有BUG,每个主题只能转换10个跟贴,那时候我突然有一个念头,觉得我们那些灌水的内容毫无意义,觉得被删除了反而会好些,干净,清爽,重生。但回过头来想想,无论如何,那毕竟是我们多年生活的见证,每一段时期,总有那么些石凳圈外的朋友在石凳辉煌,然后没落,最后消失,但只要贴子还在,记忆就不会消亡,哪怕看上去这些帖子是多么的无聊,但这些朋友们伴随着这些无聊的文字依然生动。

没有办法,只能自己写转换程序了,因为对ASP很不熟悉,只好把数据库下到本地电脑用VB转换。本以为只是简单的列赋值,甚至直接用ACCESS也能完成,可没想到他们区别还是很明显的。动网的主题和回帖全部集中在BBS1这个表里,而CPB则将主题放到Topic表,回帖放到Reply表,动网相当于一锅大杂烩,所有数据都在一个表里,依靠RootID和ParentID来区分主题与回帖的关系,而CPB则分开处理,主题和回帖靠TopicID来区分。我不知道是不是这个原因,所以CPB似乎显得要快些。

前两个月用得很熟悉的SQL Query,现在忘得一干二净,只得回过头来用很土的ADO绑定方式进行处理,东西放着不用,很快就会忘记,我真不明白学习的目的是什么?为了学习知识?还是方法?可是在我看来没什么比“用”更直接,更实在。

实在的记起,顷刻之间又实在的忘却,反反复复,没几个回合,居然都快蹉跎成“中年人”了。。。

唉。。。。。。。。。。。。。


点赞0 收藏


以下是引用
摇滚时代
在2006-3-10 11:44:36的发言


前两个月用得很熟悉的SQL Query,现在忘得一干二净,只得回过头来用很土的ADO绑定方式进行处理,东西放着不用,很快就会忘记,我真不明白学习的目的是什么?为了学习知识?还是方法?可是在我看来没什么比“用”更直接,更实在。

实在的记起,顷刻之间又实在的忘却,反反复复,没几个回合,居然都快蹉跎成“中年人”了。。。

唉。。。。。。。。。。。。。


特别在是语言开发这块。一直就是这样。要不断的学不断的更新自已,这个东西不是靠死记就行了的,不然怎么会说搞开发的肯定会比平常人少活几年呢?
Being a devil is the same as being a human. We should be kind. If we are kind, we are not a devil, we are a hybrid.
点赞0 收藏
发表回复
发表回复