本人的数据库在转换的时候投票无法正常转换,多方常识后出现下面的问题:
SQL:SELECT userid FROM dv_voteuser WHERE voteid=8 AND (voteoption='0' OR LEFT(voteoption, 2)='0,' OR LEFT(voteoption, 3)='0,' OR CHARINDEX(',0,', voteoption)>0 OR RIGHT(voteoption, 2)=',0' OR RIGHT(voteoption, 3)=',0')
Errormsg: MSSQL ERROR
尝试在查询管理器中执行上面的语句,得到如下结果:
服务器: 消息 306,级别 16,状态 1,行 1
不能比较或排序 text、ntext 和 image 数据类型,除非使用 IS NULL 或 LIKE 运算符。
服务器: 消息 8116,级别 16,状态 1,行 1
函数 left 的参数 1 的数据类型 text 无效。
服务器: 消息 8116,级别 16,状态 1,行 1
函数 left 的参数 1 的数据类型 text 无效。
服务器: 消息 8116,级别 16,状态 1,行 1
函数 right 的参数 1 的数据类型 text 无效。
服务器: 消息 8116,级别 16,状态 1,行 1
函数 right 的参数 1 的数据类型 text 无效。
而官方转换程序上说把所有的 ntext 改为 text !而 text 是不能比较的!
既然问题明白了,那就找一个可以比较的字段类型吧,尝试改为 char ,再运行转换程序,不再报错!再进MySQL数据库看, polls 和 polloptions 两个表中都有数据了。具体转的对不对且不说,改为 char 是正确的。
官方的程序居然有如此大的问题,如果不细查的话就当是转换成功了,默认是非调试模式的,也看不出问题来。
建议官方更新1.2.0版升级程序,不要耽误更多从动网投靠DZ的兄弟,其实很简单,只是需要加一句:将 voteuser 表中的 voteoption 字段改为 char 类型,255字节。
请官方核实后更改。
[ 本帖最后由 孤独的阿狼 于 2008-6-11 12:09 编辑 ] |