Discuz!NT 2.5 beta下载测试
类库文档在线查看
Comsenz 招聘信息
首届Discuz!NT 模板大赛圆满结束
著名音乐网站SoGua网、分贝网
采用Discuz!NT搭建社区
FIFA Online2官网论坛使用Discuz!NT
游戏城寨论坛使用Discuz!NT搭建
要灌, 就灌有技术含量的水
一起交流学习ASP.net吧!
17套Discuz!NT界面模板提供下载
Discuz!NT后台截图先睹为快
Discuz!NT文档中心
用户整合说明文档
Discuz!NT亮相微软Tech-Ed 2007
Discuz!NT情景搞笑短片抢先看
1/2页12 跳转到查看:19432
发新话题 回复该主题

【禁回此贴】数据转换FAQ--不断增加中

【禁回此贴】数据转换FAQ--不断增加中

1 问题 : 发帖不正常 .
分析: 不一定在转换后才不正常 ,八成是dnt_postid中 pid字段的值出现了错误  dnt_postid 表的pid字段的值决定了您新发帖的子的pid值 所以要想发帖正常 这个值是一定要正确的.
解决办法 : 
这个值应该为 各个分表(dnt_posts1,dnt_posts2 ……) 中最大的pid值
1 可以用下面的语句得到某个分表中最大pid值

select max(pid) from dnt_posts1


2 得到了各分表最大pid值 假设为1000
  然后就要更新dnt_postid表中pid字段的值了
    (1)      该字段为主键 且在access版本的dnt中 是自动编号字段 ,可以在access中创建查询 执行如下的sql语句

ALTER TABLE dnt_postid ALTER COLUMN pid COUNTER (1001, 1)


然后 将当前时间写入 dnt_postid 表postdatetime字段
    (2)    SQL版中 可以 在查询分析其中运行下面语句

DBCC CHECKIDENT ('dnt_postid', RESEED, 1000)


然后删除 dnt_postid中的那条记录 再新增一条, 这时候你会发现pid字段 的值为1000
最后编辑戏水 最后编辑于 2007-10-23 14:03:50
看到的去帮我点那个google广告啊www.cnblogs.com/zjneter

TOP

 

回复: 数据转换FAQ--不断增加中

2 转换后不能登录问题的解决
转换程序在转换结束后会自动建立 用户名 admin  密码 dntadmin 的管理员帐号.
如有意外原因导致没有建立这个管理员帐号 可以俺下述方法解决
1  确定 dnt_users表中有没有admin用户
    <1> 有

update [dnt_users] set [password]='e8a58197e26b0f6f8bdf378b778251d1',[groupid]=1 where [username]='admin'


<2> 无

insert into [dnt_users]([username], [nickname],[password],[secques], [gender], [adminid], [groupid], [groupexpiry], extgroupids,regip, joindate, lastip, lastvisit, lastactivity, lastpost,lastposttitle, posts, digestposts, oltime, pageviews, credits, extcredits1,  extcredits3, extcredits4, avatarshowid, email, bday, sigstatus,templateid, pmsound,  newsletter)
values('admin', '','e8a58197e26b0f6f8bdf378b778251d1', '', 1,  1,1,  0, '', '127.0.0.1',  '2007-01-01 00:00:00',  '127.0.0.1',  '2007-01-01 00:00:00',  '2007-01-01 00:00:00',  '2007-01-01 00:00:00', '' , 0,  0,  0, 0,  0,  0,  0,  0,  0,  '',  '1900-1-1',  1,  0,  1,  1) 


观察刚才插入的记录在dnt_users表中的uid是的值,这里假设为1000 那么继续执行sql

insert into dnt_userfields(uid,website,icq,qq,yahoo,msn,skype,location,customstatus,medals,bio,sightml,authstr,signature)
values(1000,'','','','','','','','','','','','','')


最后编辑戏水 最后编辑于 2007-03-20 13:34:05
看到的去帮我点那个google广告啊www.cnblogs.com/zjneter

TOP

 

回复: 数据转换FAQ--不断增加中

3 转换后会员数显示不正确的解决办法

分析: 这个是由于某种原因导致统计过程中没有将正确的值写入dnt_statistics表

解决办法如下:

select count(*) from dnt_users
假设 结果是 1000




然后:



update dnt_statistics set totalusers=1000


看到的去帮我点那个google广告啊www.cnblogs.com/zjneter

TOP

 

回复: 【禁回此贴】数据转换FAQ--不断增加中

4 问题:不能注册新用户
原因:由于dnt_user表中的uid自增字段的起始值错误了. 您可以通过下面的方法解决.

首先取得用户表最大uid值

select max(uid) from dnt_users


假设 得到的结果是1000

access版:
在access中,建立查询 ,然后执行下面的sql语句

ALTER TABLE dnt_users ALTER COLUMN uid COUNTER (1001, 1)


这里写1001是找一个比当前dnt_users表中最大uid值更大的值

sql版:
在查询分析其中执行下面语句

DBCC CHECKIDENT ('dnt_users', RESEED, 1000)


执行完上述操作 请再看一下dnt_userfields表中 确保其中的uid字段的值 和 dnt_users字段的值 相对应
最后编辑戏水 最后编辑于 2007-03-05 14:40:36
看到的去帮我点那个google广告啊www.cnblogs.com/zjneter

TOP

 

回复: 【禁回此贴】数据转换FAQ--不断增加中

5 问题:设置论坛创始人

  转换后请按下面的步骤设置论坛创始人,此处假设要将用户名为admin的用户设置为论坛创始人

1  执行sql语句


select uid from dnt_users where username='admin'




  假设得到的uid的值为1000

2 修改DNT.config文件中<Founderuid>1</Founderuid>配置节 为 <Founderuid>1000</Founderuid>
  如此这般,用户admin被设为论坛创始人.
看到的去帮我点那个google广告啊www.cnblogs.com/zjneter

TOP

 

回复: 【禁回此贴】数据转换FAQ--不断增加中

6 问题:附件相关问题

解决: 1 确保原动网附件目录uploadfile 整体移动到DNT论坛的upload目录下
          2 后台 Discuz!NT选项->论坛功能->开启动网UBB代码兼容模式
最后编辑戏水 最后编辑于 2007-04-20 17:25:54
看到的去帮我点那个google广告啊www.cnblogs.com/zjneter

TOP

 

回复: 【禁回此贴】数据转换FAQ--不断增加中

7 问题: 发帖正常 ,但是编辑某个帖子的时候出错
    解答: 可能的原因是该帖所属的用户在用户表(dnt_users)中不存在了,如果确定是该原因请手工修改数据库.
看到的去帮我点那个google广告啊www.cnblogs.com/zjneter

TOP

 

回复:【禁回此贴】数据转换FAQ--不断增加中

--解决重装系统并还原论坛数据库后,数据库帐号不关联的问题。
--注意请用sa帐号 进行如下操作
--操作之前,确保当前SqlServer中存在和原来数据库所有者同名的帐号

Exec sp_configure 'allow updates',1  --允许更新系统表。
RECONFIGURE WITH OVERRIDE
DECLARE @DBName varchar(50),@UserName varchar(50),@Sql varchar(200)
set @DBName='原数据库名'
set @UserName='原数据库帐号'   
set @Sql=N'update'+@DBName +N'.dbo.sysusers set sid = (select sid from master.dbo.syslogins where name='+quotename(@UserName,'''')+N') where name='+quotename(@UserName,'''')
exec(@Sql)
Exec sp_configure 'allow updates',0  --关闭系统表更新
RECONFIGURE WITH OVERRIDE
/***************************************************/
--例如 您原来数据库被还原后 名为 dntbbs , 该数据库原来的数据库所有者为bill
--请在查询分析器中运行如下代码

Exec sp_configure 'allow updates',1  --允许更新系统表。
RECONFIGURE WITH OVERRIDE
DECLARE @DBName varchar(50),@UserName varchar(50),@Sql varchar(200)
set @DBName='dntbbs'       
set @UserName='bill'   
set @Sql=N'update '+@DBName +N'.dbo.sysusers set sid = (select sid from master.dbo.syslogins where name='+quotename(@UserName,'''')+N') where name='+quotename(@UserName,'''')
exec(@Sql)
Exec sp_configure 'allow updates',0  --关闭系统表更新
RECONFIGURE WITH OVERRIDE


最后编辑戏水 最后编辑于 2007-06-01 10:47:40
看到的去帮我点那个google广告啊www.cnblogs.com/zjneter

TOP

 

回复:【禁回此贴】数据转换FAQ--不断增加中

9 重新统计主题的回复数
  注:可能需要比较长的时间

DECLARE @maxtid int
DECLARE @tid INT
DECLARE @tableid INT
DECLARE @p_id INT
DECLARE @replycount INT
DECLARE @sql VARCHAR(4000)
SET @maxtid =(SELECT MAX(tid) FROM dnt_topics)
SET @tid=0
SET @tableid=0
SET @replycount=0
SET @sql=''
SET @p_id=0

WHILE @tid <= @maxtid
BEGIN

        SET @tableid=(SELECT [id] FROM dnt_tablelist WHERE (mintid<=@tid AND @tid<=maxtid) OR (mintid<=@tid and maxtid=0))
        SET @sql = 'DECLARE @replycount INT;SET @replycount=0;'
        SET @sql=@sql+' SET @replycount=(SELECT count(1) FROM dnt_posts'+ltrim(str(@tableid))+' WHERE tid = '+ltrim(str(@tid))+' AND layer !=0);'
        SET @sql=@sql+' UPDATE dnt_topics SET replies=@replycount WHERE tid = '+ltrim(str(@tid))
        EXEC(@sql)

        SET @tid=@tid+1
END


最后编辑戏水 最后编辑于 2007-11-05 17:01:45
看到的去帮我点那个google广告啊www.cnblogs.com/zjneter

TOP

 

回复: 【禁回此贴】数据转换FAQ--不断增加中

重新统计用户精华帖数

请在SQL Server查询分析器中运行下面的sql语句 (建议做好数据库备份)

UPDATE dnt_users SET digestposts = a.digestcount
FROM (SELECT posterid,count(posterid) AS digestcount FROM dnt_topics WHERE digest <>0 GROUP BY posterid) AS a
WHERE dnt_users.uid=a.posterid


看到的去帮我点那个google广告啊www.cnblogs.com/zjneter

TOP

 
1/2页12 跳转到
发表新主题 回复该主题