|
本帖最后由 tidyinq 于 2013-1-21 16:44 编辑
MySQL是平台自带的数据库,小巧方便,还免费,尝试将在SQLServer下运行的数据库移植到MySQL,但出现了一些问题,希望X5以后的版本能完美适用于MySQL,我发现的若干问题如下:
1. 当用MySQL数据库,维护行政区划带fPath树支路径字段的表时,有时候出现多级删除树枝报错(我在之前另一个帖子描述了这个问题),或查询不到结果,比如下面的KSQL语句在SQLServer中没问题,但MySQL查询为空,用的是同样的数据内容,今天索性一探究竟,直接在MySQL下和SQLSever下测试,发现应该是KSQL转换MySQL的instr函数时出现了将=1未转换为=0的小问题,所以,查询不到结果,经过手动转化的代码就正常了,示例代码如下:
原KSQL简化为:
select PM_B_XZQH.* from PM_B_XZQH PM_B_XZQH where instr(PM_B_XZQH.fPath, '675348D6BC0E419E8D17A612FEA94590/3E01F803D3B147B2B45F21B5108922A1/892886024CF441249F74F7A935387A5D/B2B8755784AD4994A6FDFBB7328D05DB/0886112E72514C4EAF542AEC9C0BB356',0)=1
对于MySQL,等效为:
select PM_B_XZQH.* from PM_B_XZQH PM_B_XZQH where instr(PM_B_XZQH.fPath, '675348D6BC0E419E8D17A612FEA94590/3E01F803D3B147B2B45F21B5108922A1/892886024CF441249F74F7A935387A5D/B2B8755784AD4994A6FDFBB7328D05DB/0886112E72514C4EAF542AEC9C0BB356')=0
对于SQLServer,等效为:
select PM_B_XZQH.* from PM_B_XZQH PM_B_XZQH where CHARINDEX (PM_B_XZQH.fPath, '675348D6BC0E419E8D17A612FEA94590/3E01F803D3B147B2B45F21B5108922A1/892886024CF441249F74F7A935387A5D/B2B8755784AD4994A6FDFBB7328D05DB/0886112E72514C4EAF542AEC9C0BB356')=0
或
select PM_B_XZQH.* from PM_B_XZQH PM_B_XZQH where CHARINDEX (PM_B_XZQH.fPath, '675348D6BC0E419E8D17A612FEA94590/3E01F803D3B147B2B45F21B5108922A1/892886024CF441249F74F7A935387A5D/B2B8755784AD4994A6FDFBB7328D05DB/0886112E72514C4EAF542AEC9C0BB356',0)=0
2. 当不用平台内置的MySQL数据文件,重新创建数据库文件,比如名字还叫x5sys,编码选择为UTF-8或GBK,用数据库初始化工具重新初始化,这时启动系统,我发现在角色管理中的中文都是乱码,我又重新找了一个MySQL5.0.18,按前述操作,依然是乱码,估计初始化数据库工具对于MySQL还是有问题的
综上,暂时不能使用MySQL数据库了,等待后续的完善版本吧。
|
|