Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[转换] 求助:dvbbs7.1.0sp1转dz5.0第5步帖子数据不能转换

[复制链接]
seadevil 发表于 2007-1-6 14:31:23 | 显示全部楼层 |阅读模式
当前操作第 5 / 10 步 => 转换帖子数据
  
正在处理第 1 个帖子表的第 1 —— 3000 行数据......

    [中止操作并返回程序首页]



数据库引擎找不到输入表或查询 ''。 请确定它是否存在,以及它的名称的拼写是否正确。
可能原因:
1.您没有正确设置 dvbbs 的表前缀;
2.您的论坛数据库结构不是标准的 dvbbs 数据库结构;
3.数据表 '' 缺失或已更名。


----------------------------------
其他的步骤都可以,我看了一下数据库,动网帖子数据表是Dv_bbs1,应该没错啊,而且只有一个,没有bbs2,前缀Dv_也设置好的,请问达人怎么回事?
另外,我看了一下论坛帖子,加了
$dv_posttbl        =        'Dv_bbs1';
进去也不可以
有人在线指导的话更谢谢
qq:120277128

-----------
config.php配置文件如下

<?php

/*
        [DISCUZ!] convertinc/config.php - basically configuration for DvBBS 7.x Access => Discuz!5.0.0
        This is NOT a freeware, use is subject to license terms
*/

//请仔细设置下面的参数===========================================================

$access_mdb                =        'c:\数据转换\sg.mdb';                // DvBBS 7.x Access 论坛数据库文件,绝对路径

$access_uid                =        '';                                        // 访问 access 数据库文件的用户名,一般

默认为空

$access_pwd                =        '';                                        // 访问 access 数据库文件的密码,一般默

认为空

//==============================================================================

$source_tablepre        =        'Dv_';                                        // dvbbs 数据表前缀


//==============================================================================

$dbhost                        =        'localhost';                                // MySQL database server
                                                                        // MySQL 数据库服务器,如:127.0.0.1

,一般为 localhost

$dbport                        =        '6033';                                        // MySQL database server port
                                                                        // MySQL 数据库服务器端口号,一般为

3306

$dbuser                        =        'root';                                        // MySQL database username
                                                                        // MySQL 数据库用户名

$dbpw                        =        'root';                                        // MySQL database password
                                                                        // MySQL 数据库密码

//==============================================================================

$discuz_dbname                =        'discuz';                                // Discuz! 数据库名

$discuz_tablepre        =        'cdb_';                                        // Discuz! 数据表前缀 默认为:cdb_
                                                                        // 请确保同 Discuz! 的 config.inc.php

$tablepre 设置是一样的

$discuz_charset                =        'gbk';                                        // 如果您的 MySQL 为 4.1 以上版本 请根

据您的 Discuz! 数据库字符集进行设置
                                                                        // 可选 'gbk', 'big5', 'utf8', 'latin1'

//==============================================================================

$rpp                        =        '3000';                                        // 每次需要转换的数据量,如果您的服务

器比较慢,请将这个值调小

$reportfile                =        'report.htm';                                // 用来记录转换结果分析报告,该文件所

在目录须具有可写权限

$debug                        =        '0';                                        // 是否开启调试模式,当且仅当转换不能

顺利完成时打开

//参数设置完毕===================================================================

?>

[ 本帖最后由 seadevil 于 2007-1-6 14:34 编辑 ]
ejew 发表于 2007-1-6 14:35:45 | 显示全部楼层
留下数据,我试试
回复

使用道具 举报

 楼主| seadevil 发表于 2007-1-6 14:48:25 | 显示全部楼层
怀疑转换程序有问题,我下了动网原版数据库也不可以
回复

使用道具 举报

 楼主| seadevil 发表于 2007-1-6 14:49:28 | 显示全部楼层
2楼的帅哥要不你试试动网7.1.0sp1原版数据库看是不是一样的问题?
回复

使用道具 举报

 楼主| seadevil 发表于 2007-1-6 14:52:08 | 显示全部楼层
看不懂下面这段……不知道是不是没取到Dv_bbs1数据表的名字?

elseif($step == 5) {        //帖子

        $dv_posttbl = isset($_GET['dv_posttbl']) ? $_GET['dv_posttbl'] : '';
        if($tableid == 1) {
                $rsSchema = $dbc->openSchema(20);
                $dv_posttbl = $comma = '';
                while(!$rsSchema->EOF) {
                        if($rsSchema->fields[TABLE_TYPE]->value == 'TABLE') {
                                $tablename = strtolower($rsSchema->fields[TABLE_NAME]->value);
                                if(in_array($tablename, array($source_tablepre.'bbs', $source_tablepre.'bbs1', $source_tablepre.'bbs2', $source_tablepre.'bbs3', $source_tablepre.'bbs4', $source_tablepre.'bbs5', $source_tablepre.'bbs6', $source_tablepre.'bbs7', $source_tablepre.'bbs8', $source_tablepre.'bbs9'))) {
                                        $dv_posttbl .= $comma.$tablename;
                                        $comma = ',';
                                }
                        }
                        $rsSchema->movenext();
                }
                $rsSchema->close();
        }

        $tablearray = explode(',', $dv_posttbl);
        $tablecount = count($tablearray);
        $key = $tableid - 1;
        $posttable = $tablearray[$key];

        if($start <= 1 && $tableid == 1) {
                truncatetable('posts');
                validid('announceid', $tablearray[0], '');
        }

        $sql = "SELECT * FROM $posttable WHERE (announceid BETWEEN $start AND $end)";

        $rs = $dbc->execute($sql);
        $fieldarray = array('announceid', 'parentid', 'boardid', 'username', 'postuserid', 'topic', 'body', 'dateandtime', 'rootid', 'ip', 'isupload');
        while (!$rs->EOF) {
                foreach($fieldarray AS $field) {
                        $p[$field] = daddslashes($rs->fields[$field]->value);
                }

                $tid                        =        $p['rootid'];
                $fid                        =        $p['boardid'];
                $first                        =        $p['parentid'] == 0 ? 1 : 0;
                $subject                =        cutstr(@strip_tags(trim($p['topic'])), 78);
                $author                        =        $p['username'];
                $authorid                =        $p['postuserid'];
                $dateline                =        accesstimetounix($p['dateandtime']);
                $message                =        convertbbcode($p['body']);
                $useip                        =        $p['ip'];
                $attachment                =        $p['isupload'];
                $usesig                        =        1;
                $bbcodeoff                =        0;
                $smileyoff                =        0;
                $parseurloff                =        0;
                $htmlon                        =        @strip_tags($message) == $message ? 0 : 1;
                $rate                        =        0;
                $ratetimes                =        0;

                $sql = "INSERT INTO {$discuz_tablepre}posts (fid, tid, first, author, authorid, subject, dateline, message, useip, attachment, usesig, bbcodeoff, smileyoff, parseurloff, htmlon, rate, ratetimes) ".
                        "VALUES ('$fid', '$tid', '$first', '$author', '$authorid', '$subject', '$dateline', '$message', '$useip', '$attachment','$usesig', '$bbcodeoff', '$smileyoff', '$parseurloff', '$htmlon', '$rate', '$ratetimes')";

                if(mysqlquery($sql)){
                        $pid = mysql_insert_id();
                        mysqlquery("UPDATE {$discuz_tablepre}attachments set pid='$pid' WHERE tid='$tid' AND pid='$p[announceid]'");
                        $convertedrows ++;
                } else {
                        reportlog("无法转换帖子 subject = '$subject',SQL 语句如下 :<br><textarea rows=\"3\" style=\"width: 100%;\">".$sql."</textarea>");
                }
                $converted = 1;
                $totalrows ++;
                $rs->movenext();
        }

        $rs->Close();

        if($converted || $end < $maxid) {
                continue_redirect("&tableid=$tableid&dv_posttbl=$dv_posttbl");
        } elseif($tableid < $tablecount) {
                $sql = "SELECT MIN(announceid) AS minid, MAX(announceid) AS maxid FROM $tablearray[$key]";
                $rs = $dbc->execute($sql);
                if (!$rs->EOF) {
                        $start = $rs->fields[minid]->value;
                        $maxid = $rs->fields[maxid]->value;
                }
                $rs->close();
                $start = $start > 1 ? $start : 1;
                $end = $start - 1;
                echo "<hr><font color='red'>$tableid <= $tablecount</font><hr>";
                continue_redirect("&tableid=".($tableid + 1)."&dv_posttbl=$dv_posttbl");
        } else {
                report('帖子');
                stay_redirect();
        }
回复

使用道具 举报

kook12368 发表于 2007-1-6 15:03:04 | 显示全部楼层
联系我~~~~~~~~~~~~~~~~~~~``

QQ568549749
回复

使用道具 举报

 楼主| seadevil 发表于 2007-1-6 19:03:02 | 显示全部楼层
多谢各位关注,已经搞定了,用别人电脑搞定了,可能系统环境的原因
回复

使用道具 举报

千兆VS科技 发表于 2007-1-6 20:42:26 | 显示全部楼层
有成功经验的人告诉兄弟一声。。。。定重谢。。。
回复

使用道具 举报

infi_image 发表于 2007-1-30 22:25:37 | 显示全部楼层
我搞定了!!!!!

把动网数据库里的数据表Dv_bbs1 改成 Dv_bbs就可以了,我也是瞎猫碰到死耗子.
回复

使用道具 举报

清风细雨 发表于 2007-1-30 22:31:42 | 显示全部楼层
多注意一下数据表,别动不懂就上来问别人,自己多看看,以后就能记住了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-1-10 21:39 , Processed in 0.029690 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表