網(LieHuo.Net)教程 現在喜歡用Z-BLOG,于是就在本機先搭建了一個平臺,等完成以后發現在一個問題,原來是使用的OBLOG的程序.網上并沒有這兩個博客互轉的合適例子,所以就頭疼了一把,經過自己一翻努力,呵呵終于成功了(不過不帶TAG的內容,這個太麻煩了),現在我就把自己的操作方法說出來,大家按這個思路可以根據自己的情況改造一下.
首先先把它這個的ACCESS數據庫導到MS SQL2000(或更高的版本中)中,如果沒有你就自己寫個ASP頁面來處理吧,在導入完成后,就可以通過SQL語句來進行相互訪問了.
這個是Z-BLOG主要的博客內容表(可以根據你自己想要的內容來增加):
SELECT LOG_CATEID,
LOG_AUTHORID,
LOG_LEVEL,
LOG_TITLE,
LOG_INTRO,
LOG_CONTENT,
LOG_IP,
LOG_POSTTIME,
LOG_VIEWNUMS,
LOG_TAG,
LOG_ISTOP
FROM BLOG_ARTICLE
這個是你OBLOG的用戶的博客內容(也可根據自己想要的內容來增加),記得查清你的用戶編號,我想這個應該不難:
SELECT TOPIC,
LOGTEXT,
ADDTIME,
TRUETIME,
IIS,
CLASSID,
LOGTAGS,
LOGTAGSID,
ABSTRACT
FROM OBLOG_LOG
WHERE USERID = 2
好了兩個主表都找到了,接下來要做的就是看看你的這兩個博客里的分類是不是一樣的,如果不一樣,你最好列舉一下它們的對應關系以便后面的CASE語句中用,接下來就是主要的改造語句:
INSERT INTO
BLOG_ARTICLE(
LOG_CATEID,
LOG_AUTHORID,
LOG_LEVEL,
LOG_TITLE,
LOG_INTRO,
LOG_CONTENT,
LOG_IP,
LOG_POSTTIME,
LOG_VIEWNUMS,
LOG_ISTOP)
SELECT CLASSID=
CASE CLASSID
WHEN 3 THEN 1
WHEN 23 THEN 3
WHEN 2 THEN 4
WHEN 4 THEN 5
WHEN 14 THEN 8
WHEN 1 THEN 8
ELSE 7
END,
1,
4,
TOPIC,
ABSTRACT,
LOGTEXT,
'127.0.0.1',
ADDTIME,
IIS,
0
FROM OBLOG_LOG
WHERE USERID = 2
以上為我的轉換的例子,因為兩個博客建的欄目不一樣,所以我用CASE轉換了一下,大家可以根據自己的欄目內容編號進行修改
我的OBLOG用戶編號為2.如果大家在轉換中遇到什么問題可以進行溝通。
另外還有部分要修改的就是原來OBLOG中的下載地址和Z-BLOG中的地址是不同的,如果你網站直接是根目錄就直接換成下面的就好,如果是http://www.XXX.com/blog/這樣的目錄,建議你還要修改一下下面的存儲過程.
--SELECT LOG_ID FROM BLOG_ARTICLE WHERE LOG_CONTENT LIKE '%UPLOADFILES/%'
--定義替換的字符串
DECLARE @S_STR VARCHAR(8000),@D_STR VARCHAR(8000)
SELECT @S_STR='"UPLOADFILES/' --要替換的字符串
,@D_STR='"/UPLOADFILES/' --替換成的字符串
--因為只能用PATINDEX,所以對于搜索字符串做處理
SET @S_STR='%'+@S_STR+'%'
--定義游標,循環處理數據
DECLARE @ID VARCHAR(500)
DECLARE #TB CURSOR FOR SELECT LOG_ID FROM BLOG_ARTICLE WHERE LOG_CONTENT LIKE '%"UPLOADFILES/%'
OPEN #TB
FETCH NEXT FROM #TB INTO @ID
WHILE @@FETCH_STATUS=0
BEGIN
--字符串替換處理
DECLARE @P VARBINARY(16) ,@P1 INT,@P2 INT ,@RPLEN INT,@STEP INT,@LEN INT
SELECT @P=TEXTPTR(LOG_CONTENT) ,@RPLEN=LEN(@S_STR)-2 ,@STEP=LEN(@D_STR) ,@P1=PATINDEX(@S_STR,LOG_CONTENT) ,@LEN=DATALENGTH(LOG_CONTENT) ,@P2=0 FROM BLOG_ARTICLE WHERE LOG_ID = @ID
WHILE @P1>0
BEGIN
SET @P2=@P1+@P2-1
UPDATETEXT BLOG_ARTICLE.LOG_CONTENT @P @P2 @RPLEN @D_STR
SELECT @P2=@P2+1,@P1=PATINDEX(@S_STR,SUBSTRING(LOG_CONTENT,@P2+1,@LEN))FROM BLOG_ARTICLE WHERE LOG_ID = @ID
END
FETCH NEXT FROM #TB INTO @ID
END
CLOSE #TB
DEALLOCATE #TB
--顯示結果
SELECT LOG_ID,LOG_CONTENT FROM BLOG_ARTICLE WHERE LOG_CONTENT LIKE '%UPLOADFILES/%'
GO
好基本上的工作已經完成,至于以前的TAG內容,大家都想想辦法吧,這個的確有點難.最后再到Z-BLOG中把文件重新建立一下,相關于重新生成HTML文件.一切都完成了去看你的博客吧!