网(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文件.一切都完成了去看你的博客吧!