修正mysqlcc在MySQL 5.0上常报的 Table 'xxx' doesn't exist 错误

公司上了MySQL 5.0, 随之而来的不是用的有多爽的问题, 而是一直用的很顺手的mysqlcc...不行了, 其表现形式为经常会在状态栏中提示 "[192.168.22.72] ERROR 1146: Table 'rimkpi.1' doesn't exist" 之类的。 选出数据来也不能在表格中直接修改了,到底mysqlcc出了啥问题呢?
 
经过观察,发现在MySQL 5.0上 EXPLAIN 语句的结果和4.1一下的版本不同了。4.1以前的返回的结果第一个字段是tablename, 而4.1以后和5.0的返回的是id号(一般情况下就是1了),第三个字段才是tablename。看来是这里出了问题,不过怎么会在4.1上可以,5.0反而不行了呢? 很不爽,于是去MySQL的官方网站把mysqlcc的source拖了一份下来,用Source-Navigator跟了一把,发现原来是在CQueryWindow.cpp的execQuery的方法(line 447)中的一段白痴代码:

 

default_table = explain_query->row( mysql()->mysql()->version().major >= 4 && 
    mysql()
->mysql()->version().minor >= 1 ? 2 : 0);

 

如果版本号是4.1或者5.1的话,这个判断的结果是2;而如果版本号是5.0的话,结果就是0了。正确的代码至少也应该是

default_table = explain_query->row(
    ( mysql()
->mysql()->version().major == 4 && mysql()->mysql()->version().minor >= 1 ) || 
    ( mysql()
->mysql()->version().major >= 5 ) ? 2 : 0);


 
真是...大概开源就这点好处了。 mysqlcc现在已经不再继续维护了,看来只能自己找到mysql的开发包重新编译个自用版本的mysqlcc了,哈哈

Tag标签: MySQL,mysqlcc
0
0
(请您对文章做出评价)
« 上一篇:Perl中不寻常的 ?: 运算符
» 下一篇:vi的一点小经验

posted on 2006-04-19 15:13 古月春秋 阅读(790) 评论(3)  编辑 收藏 网摘 所属分类: c/un*x

评论

#1楼 2007-06-11 00:51 haha[未注册用户]

原来如此,我弄了一天都没有弄清楚,原来是MYSQLCC不支持5.0   回复  引用    

#2楼 2007-07-25 15:28 folcan[未注册用户]

有没有高手编译一个,给大家共享下哈   回复  引用    

#3楼 2008-05-30 23:36 等等的[未注册用户]

你错了,它现在支持5.1,你开发一个?哈哈,不要笑死我啦   回复  引用    

公告


导航

<2006年4月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

统计

  • 随笔 - 26
  • 文章 - 5
  • 评论 - 42
  • 引用 - 1

搜索

 

常用链接

我的标签

随笔分类

随笔档案

相册

收藏夹

Blog

编程

管理

技术参考

其它

最新评论

阅读排行榜

评论排行榜